我正在尝试按照指南行在组中显示网格,但它无法在jqGrid中加载数据。
有人可以帮帮我吗?
$("#Addresses").jqGrid({
datatype: 'xmlstring',
datastr: xmlString.XmlToString(),
mtype: 'POST',
beforeRequest: function () {
//alert('beforeRequest');
},
loadError: function (xhr, status, error) {
$(this).HideBusy();
// alert(status);
// alert(error);
alert(xhr.responseText);
},
onSelectRow: function (id) {
var Address = $("#Addresses").jqGrid('getCell', id, 'Address');
SelectedAddresses.find("CRD1>row").each(function (index) {
if ($(this).find('Address').text() == Address) {
var v1 = $(this).XmlToString();
var v2 = '<CRD1>' + v1 + '</CRD1>';
$(this).SetValuesToControl("BusinessPartner #uxAddresses", $($.parseXML(v2)));
}
});
},
loadComplete: function (data) {
var top_rowid = $('#Addresses tr:nth-child(2)').attr('id');
$("#Addresses").setSelection(top_rowid, true);
$(this).HideBusy();
},
ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
xmlReader: { repeatitems: false, root: "CRD1", row: 'row' },
colNames: ['Address', 'AdresType'],
colModel: [
{ name: 'Address', key: true, index: 'Address asc', hidden: false },
{ name: 'AdresType', index: 'AdresType', sortable: false, align: "left" }
],
viewrecords: true,
gridview: true,
autowidth: true,
shrinkToFit: false,
height: 150,
width: 110,
grouping: true,
groupingView: {
groupField: 'AdresType',
groupColumnShow: false
},
scrollOffset: 0
}).jqGrid('navGrid', '', { edit: false, add: false, del: false, searchOnEnter: false, search: false }, {}, {}, {}, { multipleSearch: false });
我看到了这个link,我注意到在groupField中有两个方括号([])表示数组,我假设它用于多个组。
如果我在方括号中指定FieldName(例如:groupField:[&#39; AdresType&#39;]),它会抛出jqGrid错误。
错误: Microsoft JScript运行时错误:无法获取属性的值&#39; 0&#39;:对象为null或未定义
示例数据:
<CRD1>
<row>
<Address>HeadOffice</Address>
<CardCode>A0002</CardCode>
<City nil="true"/>
<County nil="true"/>
<Building/>
<AdresType>B</AdresType>
</row>
<row>
<Address>SiteOffice</Address>
<CardCode>A0002</CardCode>
<City nil="true"/>
<County nil="true"/>
<Building/>
<AdresType>B</AdresType>
</row>
<row>
<Address>PuneOffice</Address>
<CardCode>A0002</CardCode>
<City nil="true"/>
<County nil="true"/>
<Building/>
<AdresType>S</AdresType>
</row>
答案 0 :(得分:0)
您应该注意groupingView
中使用的数据类型。 The documentation包含包含Property
,Type
,Description
和Default
列的表格。 Type
和groupField
的{{1}}列都包含groupColumnShow
。所以正确的是
array
而不是
groupingView: {
groupField: ['AdresType'],
groupColumnShow: [false]
}
更新:还有一个问题:jqGrid中存在错误。 The lines
groupingView: {
groupField: 'AdresType',
groupColumnShow: false
}
应改为
if(!locdata) {
self.jqGrid('groupingRender',grpdata,ts.p.colModel.length, ts.p.page, rn);
}
grpdata = null;
该错误已于2014年3月3日在jqGrid的主代码中修复(请参阅here),但当时没有发布新版本的jqGrid。我希望Tony能很快发布新版本。
因此,您可以在if(!locdata) {
self.jqGrid('groupingRender',grpdata,ts.p.colModel.length, ts.p.page, rn);
grpdata = null;
}
的副本中进行相应的修改。或者,您可以使用除jquery.jqGrid.src.js
之外的任何其他数据类型。