Ich bin nicht in der Lage, mehr als 500 Datensätze in einem JqGrid durch JSON zu binden, während meine Anforderung 150000 Datensätze in JqGrid binden und Seitenumbruch hinzufügen.Nicht in der Lage mehr als 500 Datensätze in jQgrid über JSON zu binden
Wenn ich TOP 400
in einer SELECT
Abfrage hinzufügen, dann kann ich Datensätze anzeigen, aber für TOP 500
zeigt es leer. Unten ist mein Code:
$(document).ready(function() {
jQuery("#jQGridRawData").jqGrid({
url: 'Transaction.aspx/GetData',
datatype: 'json',
mtype: 'POST',
height: 'auto',
serializeGridData: function(postData) {
return JSON.stringify(postData);
},
ajaxGridOptions: {
contentType: "application/json"
},
colNames: ["ID", "Pos", "Dep", "Systems", "Batch ID", "Check", "Code", "Amount"],
colModel: [{
name: 'testpmsID',
index: 'testpmsID',
width: 60,
sortable: false,
search: false,
align: 'center'
}, {
name: "PostingDate",
index: "PostingDate",
width: 126,
align: 'center',
search: true,
sorttype: 'date',
formatter: 'date',
formatoptions: {
newformat: 'm-d-y'
}, //formatoptions: { srcformat: 'd/m/Y', newformat: 'd/m/Y'}
searchoptions: {
dataInit: function(element) {
$(element).datepicker({
autoclose: true,
format: 'mm-dd-yy',
orientation: 'left'
});
},
sopt: ['eq', "ge", "le"],
clearSearch: false
}
}, {
name: "DepositDate",
index: "DepositDate",
width: 126,
align: 'center',
search: true,
sorttype: 'date',
formatter: 'date',
formatoptions: {
newformat: 'm-d-y'
},
searchoptions: {
dataInit: function(element) {
$(element).datepicker({
autoclose: true,
format: 'mm-dd-yy',
orientation: 'left'
});
},
sopt: ['eq', "ge", "le"],
clearSearch: false
}
}, {
name: "Systems",
index: "Systems",
width: 110,
align: 'left',
searchoptions: {
sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'],
clearSearch: false
}
}, {
name: "BatchID",
index: "BatchID",
width: 100,
sorttype: 'number',
align: 'left',
searchoptions: {
sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'],
clearSearch: false
}
}, {
name: "CheckNumber",
index: "CheckNumber",
width: 140,
align: 'left',
searchoptions: {
sopt: ['eq', 'ne', 'le', 'lt', 'gt', 'ge'],
clearSearch: false
}
}, {
name: "PaymentCode",
index: "PaymentCode",
width: 175,
align: 'left',
search: true,
searchoptions: {
sopt: ['eq', "ge", "le"],
clearSearch: false
}
}, {
name: "PaymentAmount",
index: "PaymentAmount",
width: 160,
align: 'right',
search: true,
searchoptions: {
sopt: ['eq', "ge", "le"],
clearSearch: false
},
formatter: 'currency',
formatoptions: {
prefix: '$ ',
thousandsSeparator: ',',
decimalPlaces: 2
}
}],
pager: "#jQGridRawDataPager",
rowNum: 20,
rowTotal: 2000,
rowList: [20, 30, 50],
loadonce: true,
//rownumbers: true,
//add: false,
//edit: false,
width: '100%',
hidegrid: false,
viewrecords: true,
headertitles: true,
responsive: true,
styleUI: 'Bootstrap',
shrinkToFit: false,
forceFit: false,
hoverrows: false,
//gridview: true,
viewsortcols: [false, 'vertical', true],
jsonReader: {
page: function(obj) {
return 1;
},
total: function(obj) {
return 1;
},
records: function(obj) {
return obj.d.length;
},
root: function(obj) {
return obj.d;
},
repeatitems: false,
id: "0"
}
}); //grid intiallization code end
// Setup buttons
jQuery("#jQGridRawData").jqGrid('navGrid', '#jQGridRawDatPager', {
edit: false,
add: false,
del: false,
search: true
}, {
height: 200,
reloadAfterSubmit: true
});
// Setup filters
jQuery("#jQGridRawData").jqGrid('filterToolbar', {
defaultSearch: true,
stringResult: true,
searchOperators: true
});
});
[WebMethod]
public static List<Dictionary<string, object>> GetRawData()
{
SqlConnection sqlConnection = new SqlConnection();
sqlConnection.ConnectionString = ConfigurationManager.ConnectionStrings["abcd"].ConnectionString;
sqlConnection.Open();
string sqlStatement = "SELECT * FROM tablename";
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlStatement, sqlConnection);
DataTable dtResult = new DataTable();
sqlDataAdapter.Fill(dtResult);
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
Dictionary<string, object> row;
foreach (DataRow dr in dtResult.Rows)
{
row = new Dictionary<string, object>();
foreach (DataColumn col in dtResult.Columns)
{
row.Add(col.ColumnName, dr[col]);
}
rows.Add(row);
}
return rows;
}
'meine Anforderung ist 150000 Datensätze in jqGrid zu binden, und fügen Sie pagination' ich dringend empfehlen würden Sie tun, um Ihre Paginierung auf dem Server . Beim Dump von 150.000 Datensätzen an den Browser wird nur nach einer schlechten Zeit gefragt. –
Wie kann ich die Paginierung serverseitig mit jqgrid hinzufügen? kannst du mir bitte einen Link schicken –