为什么第三层的 jqgrid 不显示?
why third level of jqgrid doesn't show?
我在 asp.net mvc 项目中使用 jqgrid。它有3个级别。
第一级和第二级显示良好,但第三级未填充和显示。
它不会在控制器中起作用。
但如果我在二级调用它,它就可以工作。
我认为填写第三层有误。
这是我的代码:
function FillJQueryGrid(ProjectIdVal) {
$("#jqGrid").jqGrid({
url: '@Url.Action("GetCodingCodeSumLists", "Report")' + '?ProjectId=' + ProjectIdVal,
jsonReader: {
repeatitems: false,
root: function (obj) {
return obj.records;
}
},
datatype: "json",
height: 'auto',
page: 1,
colModel: [
{ label: 'Fieco Doc No.', name: 'comp_code', key: true },
{ label: 'Subject', name: 'Comp_Subject' },
{ label: 'Delay', name: 'sum_delay_count' },
],
loadonce: true,
height: 'auto',
autowidth: true,
rowNum: 20,
subGrid: true,
subGridRowExpanded: showChildGridrevision,
pager: "#jqGridPager"
});
};
//***********************************fill grid level 2 *******************************************
function showChildGridrevision(parentRowID, parentRowKey) {
debugger;
var childGridID = parentRowID + "_table";
var childGridPagerID = parentRowID + "_pager";
var childGridURL = '@Url.Action("GetRevisionSumLists", "Report")' + '?CompCode=' + parentRowKey;
$('#' + parentRowID).append('<table id=' + childGridID + '></table><div id=' + childGridPagerID + ' class=scroll></div>');
$("#" + childGridID).jqGrid({
url: childGridURL,
jsonReader: {
repeatitems: false,
root: function (obj) {
return obj.records;
}
},
datatype: "json",
height: 'auto',
page: 1,
colModel: [
{ label: 'CompCode_Revision', name: 'CompCode_Revision', key: true, hidden: true },
{ label: 'comp_code', name: 'comp_code', hidden: true },
{ label: 'revision', name: 'revision' },
{ label: 'Delay', name: 'sum_delay_count' }
],
loadonce: true,
subGrid: true,
subGridRowExpanded: showChildGridTransmital,
pager: "#" + childGridPagerID
});
}
//***********************************fill grid level 3 *******************************************
function showChildGridTransmital(parentRowID, parentRowKey) {
debugger;
var childGridID = parentRowID + "_table";
var childGridPagerID = parentRowID + "_pager";
var childGridURL = '@Url.Action("GetTransmitalSumLists", "Report")' + '?CompCode_Revision=' + parentRowKey;
$('#' + parentRowID).append('<table id=' + childGridID + '></table><div id=' + childGridPagerID + ' class=scroll></div>');
$("#" + childGridID).jqGrid({
url: childGridURL,
jsonReader: {
repeatitems: false,
root: function (obj) {
return obj.records;
}
},
datatype: "json",
height: 'auto',
page: 1,
colModel: [
{ label: 'CompCode_Revision_Transmital', name: 'CompCode_Revision_Transmital', key: true, hidden: true },
{ label: 'transmital no', name: 'trans_ref_no' },
{ label: 'transmital subject', name: 'ChkMain_Subject' },
{ label: 'transmital date', name: 'trans_date' },
{ label: 'Delay', name: 'sum_delay_count' }
],
loadonce: true,
subGrid: false,
pager: "#" + childGridPagerID
});
}
请帮帮我
解决了!
第二层key的值,包含逗号(',') 所以第三层的table名称包含逗号
我用下划线替换了逗号并且有效
我在 asp.net mvc 项目中使用 jqgrid。它有3个级别。 第一级和第二级显示良好,但第三级未填充和显示。 它不会在控制器中起作用。 但如果我在二级调用它,它就可以工作。 我认为填写第三层有误。 这是我的代码:
function FillJQueryGrid(ProjectIdVal) {
$("#jqGrid").jqGrid({
url: '@Url.Action("GetCodingCodeSumLists", "Report")' + '?ProjectId=' + ProjectIdVal,
jsonReader: {
repeatitems: false,
root: function (obj) {
return obj.records;
}
},
datatype: "json",
height: 'auto',
page: 1,
colModel: [
{ label: 'Fieco Doc No.', name: 'comp_code', key: true },
{ label: 'Subject', name: 'Comp_Subject' },
{ label: 'Delay', name: 'sum_delay_count' },
],
loadonce: true,
height: 'auto',
autowidth: true,
rowNum: 20,
subGrid: true,
subGridRowExpanded: showChildGridrevision,
pager: "#jqGridPager"
});
};
//***********************************fill grid level 2 *******************************************
function showChildGridrevision(parentRowID, parentRowKey) {
debugger;
var childGridID = parentRowID + "_table";
var childGridPagerID = parentRowID + "_pager";
var childGridURL = '@Url.Action("GetRevisionSumLists", "Report")' + '?CompCode=' + parentRowKey;
$('#' + parentRowID).append('<table id=' + childGridID + '></table><div id=' + childGridPagerID + ' class=scroll></div>');
$("#" + childGridID).jqGrid({
url: childGridURL,
jsonReader: {
repeatitems: false,
root: function (obj) {
return obj.records;
}
},
datatype: "json",
height: 'auto',
page: 1,
colModel: [
{ label: 'CompCode_Revision', name: 'CompCode_Revision', key: true, hidden: true },
{ label: 'comp_code', name: 'comp_code', hidden: true },
{ label: 'revision', name: 'revision' },
{ label: 'Delay', name: 'sum_delay_count' }
],
loadonce: true,
subGrid: true,
subGridRowExpanded: showChildGridTransmital,
pager: "#" + childGridPagerID
});
}
//***********************************fill grid level 3 *******************************************
function showChildGridTransmital(parentRowID, parentRowKey) {
debugger;
var childGridID = parentRowID + "_table";
var childGridPagerID = parentRowID + "_pager";
var childGridURL = '@Url.Action("GetTransmitalSumLists", "Report")' + '?CompCode_Revision=' + parentRowKey;
$('#' + parentRowID).append('<table id=' + childGridID + '></table><div id=' + childGridPagerID + ' class=scroll></div>');
$("#" + childGridID).jqGrid({
url: childGridURL,
jsonReader: {
repeatitems: false,
root: function (obj) {
return obj.records;
}
},
datatype: "json",
height: 'auto',
page: 1,
colModel: [
{ label: 'CompCode_Revision_Transmital', name: 'CompCode_Revision_Transmital', key: true, hidden: true },
{ label: 'transmital no', name: 'trans_ref_no' },
{ label: 'transmital subject', name: 'ChkMain_Subject' },
{ label: 'transmital date', name: 'trans_date' },
{ label: 'Delay', name: 'sum_delay_count' }
],
loadonce: true,
subGrid: false,
pager: "#" + childGridPagerID
});
}
请帮帮我
解决了! 第二层key的值,包含逗号(',') 所以第三层的table名称包含逗号 我用下划线替换了逗号并且有效