, , , . LINQ to Entities, .
-, jqGrid ( , ):
$(document).ready(function() {
$("#searchResultList").jqGrid({
url: '/Report/GetResultsL2E/',
datatype: 'json',
mtype: 'GET',
colNames: ['', 'ID', 'Title', 'Post_Date', 'Start_Date', 'End_Date', 'Summary'],
colModel: [
{ name: 'act', index: 'act', width: 75, sortable: false },
{ name: 'ID', index: 'ID', width: 40, align: 'left', hidden: true },
{ name: 'Title', index: 'Title', width: 150, align: 'left' },
{ name: 'Post_Date', index: 'Post_Date', width: 80, align: 'left', formatter: 'date' },
{ name: 'Start_Date', index: 'Start_Date', width: 80, align: 'left', formatter: 'date' },
{ name: 'End_Date', index: 'End_Date', width: 80, align: 'left', formatter: 'date' },
{ name: 'Summary', index: 'Summary', width: 240, align: 'left' }
],
pager: jQuery('#searchResultPager'),
rowNum: 10,
rowList: [5, 10, 20, 50],
sortname: 'Title',
sortorder: "asc",
viewrecords: true,
imgpath: '/Scripts/jqGrid/themes/green/images',
caption: 'Report Search Results',
editurl: "/Report/Edit",
scroll: true,
height: 'auto',
recordtext: ' Reports',
pgtext: ' of ',
multiselect: true,
multiboxonly: true,
altRows: true,
loadComplete: function() {
var ids = jQuery("#searchResultList").getDataIDs();
for (var i = 0; i ";
se = "";
ce = "";
jQuery("
}
}
}).navGrid('#searchResultPager',
{ edit: false, add: false, del: false, search: false },
{height: 280, reloadAfterSubmit: false },
{height: 280, reloadAfterSubmit: false },
{reloadAfterSubmit: false },
{}
);
});
:
///
/// Query the ReportSet to return a paged, sorted set of Report entity properties in response to a call from a view.
///
/// The name of the column to use for sorting.
/// The order of the sort (ascending or descending).
/// The number of the page to return to the calling process.
/// The number of rows to return for the page.
/// This ActionResult returns a JSON result to be used by a jqGrid using the jQuery library.
/// jQuery requires a script tag linking the jQuery.js script.
/// jqGrid requires stylesheet links to the following scripts and stylesheets:
///
/// jQuery/themes/base/ui.all.css
/// jqGrid/themes/green/grid.css (or other theme CSS file)
/// jqGrid/jquery.jqGrid.js
/// jqGrid/grid.base.js
/// jqGrid/js/jqModal.js
/// jqGrid/js/jqDnR.js
///
public ActionResult GetResultsL2E(string sidx, string sord, int page, int rows)
{
int pageIndex = Convert.ToInt32(page) - 1;
int pageSize = rows;
int totalRecords = _db.ReportSet.Count();
int totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize);
int startRecord = pageIndex * pageSize;
List rowStrings = new List();
// Get all of the reports in the model in a fixed order (for comparison).
//var reports = from item in _db.ReportSet
// orderby item.Start_Date, item.Title
// select new { item.ID, item.Title, item.Post_Date,
// item.Start_Date, item.End_Date, item.Summary };
// Get all of the reports in the model in a dynamic order passed from jqGrid.
string orderBytext = "";
orderBytext = string.Format("it.{0} {1}", sidx, sord);
var reports = _db.ReportSet
.OrderBy(orderBytext);
List stringList = new List();
int counter = reports.Count();
foreach (var report in reports)
{
var rowString = new
{
id = report.ID,
cell = new[] {
"",
report.ID.ToString(),
report.Title,
report.Post_Date.ToShortDateString(),
report.Start_Date.ToShortDateString(),
report.End_Date.ToString(),
report.Summary.ToString()}
};
stringList.Add(rowString);
}
var rowsOut = new object[counter];
for (int i = 0; i , , , PredicateBuilder, # Albaharis # Nutshell . , MSDN PredicateBuilder LINQ to Entities