У меня чертовски время, пытаясь отобразить только мой jqGrid, когда записи возвращаются из моего веб-сервиса. Я не хочу, чтобы он был свернут туда, где вы видите только заголовок, но если это самое лучшее, что я могу сделать, я полагаю, что я мог бы поместить в заголовок содержательное сообщение. Тем не менее, я бы скорее просто спрятать сетку и показать блок сообщений "Нет записей".
Я также предполагаю, что если худшее пришло в худшее, я мог бы сделать решение по этому вопросу Как отобразить информацию в jqGrid о том, что данных нет? (ссылка как альтернативное возможное решение для других).
Я попытался сделать .hide() внутри как функции, используемой при загрузке данных из функции, так и из события GRIDCOMPLETE, и не завершил скрытие сетки. Я новичок в JQuery, не говоря уже о совершенно новом для использования 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>
И попробовал это тоже:
$(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>
Спасибо за любую помощь, которую вы можете предоставить.