我确定我的问题已在某处得到解决,但我已经研究了一段时间,似乎无法找到我正在寻找的答案。
navGrid
和inlineNav
功能创建网格,如下所示:
$("#attributeEditList").jqGrid( {
datatype: "local",
height: 150,
colNames: ['rowid', 'Vendor', 'Category', 'Key', 'Value', 'Flags', 'Status'],
colModel: [
{name: 'rowid', index: 'rowid', hidden: true, key: true},
{name: 'vendorCode', index: 'vendorCode', hidden: true},
{name: 'category', index: 'category', width: 120, editable: true, editrules:{required: true} },
{name: 'key', index: 'key', width: 120, editable: true, editrules:{required: true} },
{name: 'value', index: 'value', width: 200, editable: true, editrules:{required: true} },
{name: 'flags', index: 'flags', width: 80, editable: true, editrules:{required: true, integer: true} },
{name: 'status', index: 'status', hidden: true }
],
sortname: "category",
viewrecords: true,
caption: "Attributes",
rowNum: 20000,
pager: '#attributeEditPager',
editurl: "vendor/ajax/dummy.do",
data: vendor.attributes,
jsonReader : { repeatitems: false }
});
$("#attributeEditList").jqGrid( "navGrid", '#attributeEditPager', {
edit: false,
add: false,
del: true,
search: false,
refresh: false,
delfunc: deleteAttribute
}
);
$("#attributeEditList").jqGrid( "inlineNav", '#attributeEditPager' );
editurl
参数是必需的,并且必须实际上是一个有效的网址,以便进行编辑工作。inlineNav
功能时。首先,我单击“添加(+)”按钮添加一行,添加数据,然后单击“保存”按钮。然后,如果我再次单击“添加”按钮,则会添加一个新行,但“添加”和“编辑”按钮仍处于活动状态,而“保存”和“取消”按钮仍处于禁用状态。如果您对这些问题有任何建议,请告诉我。
答案 0 :(得分:1)
从the demo查看the old answer,我将演示如何在jqGrid中实现本地表单编辑。您首先提出的问题是navGrid
添加的“删除”。因此,您可以使用设置processing: true
的技巧,我建议将“删除”按钮设置为本地。您还应该使用editurl: 'clientArray'
。大约一年前我将我的建议发布到trirand(参见here),但是本地表单编辑仍然不是jqGrid的一部分。
你是对的,有很多情况inlineNav
工作有问题,如果用户点击其他顺序的按钮,则有错误的激活或错误的停用按钮。您必须使用$("#attributeEditList_ilsave").removeClass('ui-state-disabled');
或$("#attributeEditList_ilsave").addClass('ui-state-disabled');
手动激活/停用按钮。按钮的ID将由gridid和后缀“_iladd”,“_iledit”,“_ilsave”,“_ilcancel”构成。我建议您在onSelectRow
或beforeSelectRow
中包含此类代码,直到jqGrid主代码中的错误无法修复。