Ich bin mit einem heck of a time versuchen, nur meine jqGrid anzeigen, wenn Datensätze von meinem Webservice zurückgegeben werden. Ich möchte nicht, dass es zusammengebrochen werden, wo Sie nur die Titelleiste entweder sehen, aber wenn das das Beste ist, was ich tun kann, nehme ich an, dass ich eine aussagekräftige Nachricht in der Beschriftung setzen könnte. Dennoch würde ich viel lieber nur das Raster ausblenden und zeigen eine "No Records Found" Nachricht div-Block.
Ich denke auch, dass ich im schlimmsten Fall die Lösung für diese Frage finden könnte Wie man Informationen in jqGrid anzeigen, dass es keine Daten sind? (Link beigefügt als mögliche Alternativlösung für andere).
Ich habe versucht, eine .hide() innerhalb der Funktion verwendet, wenn das Laden der Daten aus einer Funktion und das GRIDCOMPLETE-Ereignis, und weder erreicht Ausblenden des Rasters. Ich bin ziemlich neu in JQuery, nicht zu erwähnen, ziemlich neu zu verwenden jqGrid.
$(document).ready(function() {
$("#list").jqGrid({
url: 'Service/JQGridTest.asmx/AssetSearchXml',
datatype: 'xml',
mtype: 'GET',
colNames: ['Inv No', 'Date', 'Amount'],
colModel: [
{ name: 'invid', index: 'invid', width: 55 },
{ name: 'invdate', index: 'invdate', width: 90 },
{ name: 'amount', index: 'amount', width: 80, align: 'right' }],
pager: jQuery('#pager'),
postData: { "testvar": "whatever" },
rowNum: 10,
rowList: [10, 20, 30],
sortname: 'id',
sortorder: "desc",
viewrecords: true,
imgpath: 'themes/sand/images',
caption: 'My first grid',
gridComplete: function() {
var recs = $("#list").getGridParam("records");
if (recs == 0) {
$("#list").hide();
}
else {
alert('records > 0');
}
}
});
...
<table id="list" class="scroll"></table>
<div id="pager" class="scroll" style="text-align:center;"></div>
Und das habe ich auch versucht:
$(document).ready(function() {
$("#list").jqGrid({
datatype: function(postdata) {
jQuery.ajax({
url: 'Service/JQGridTest.asmx/AssetSearchXml',
data: postdata,
dataType: "xml",
complete: function(xmldata, stat) {
if (stat == "success") {
var thegrid = $("#list")[0];
thegrid.addXmlData(xmldata.responseXML);
var recs = $("#list").getGridParam("records");
if (recs == 0) {
$("#list").hide();
alert('No rows - grid hidden');
}
else {
alert(recs);
}
}
else {
alert('FAIL');
}
}
});
},
mtype: 'GET',
colNames: ['Inv No', 'Date', 'Amount'],
colModel: [
{ name: 'invid', index: 'invid', width: 55 },
{ name: 'invdate', index: 'invdate', width: 90 },
{ name: 'amount', index: 'amount', width: 80, align: 'right' }],
pager: jQuery('#pager'),
postData: { "testvar": "whatever" },
rowNum: 10,
rowList: [10, 20, 30],
sortname: 'id',
sortorder: "desc",
viewrecords: true,
imgpath: 'themes/sand/images',
caption: 'My first grid'
});
...
<table id="list" class="scroll"></table>
<div id="pager" class="scroll" style="text-align:center;"></div>
Danke für jede Hilfe, die Sie anbieten können.