我已经编写了行选择功能。它没有突出显示所选行(有时突出显示有时突出显示的其他行)并且没有按照我编写的方式显示图标。以下是代码
multiselect : true,
iconSet: "fontAwesome",
datatype : "json",
loadonce : true,
rowNum : 10,
rowList : [ 10, 20, 30 ],
toppager:true,
pager : '#prowed1',
sortname : 'id',
viewrecords : true,
sortorder : "asc",
editurl : "editGrid.html",
onSelectRow : function(rowId) {
var rowId = jQuery("#list1").jqGrid('getGridParam',
'selarrrow');
if (rowId.length > 1) {
$("#list1_iledit").addClass('ui-state-disabled');
}
},
$("#list1").jqGrid(
"navGrid",
"#prowed1",
{
cloneToTop:true,
formatter : "checkboxFontAwesome4",
addicon:"fa fa-plus ",
add : true,
delicon:"fa fa-trash",
del : true,
searchicon:"fa fa-search",
search : true,
refreshicon:"fa fa-refresh",
refresh : true,
editicon:"fa fa-edit ",
edit : true,
saveicon : 'fa fa-floppy-o',
save : true,
},`{ // edit options
afterSubmit : function() {
location.reload(true);
},
beforeShowForm : function(form) {
$("td .navButton navButton-ltr").hide();
},
closeAfterEdit : true
},
{ // add options
beforeShowForm : function(form) {
$("#buName").removeAttr("readonly");
},
closeAfterAdd : true,
clearAfterAdd : true
},
{ // del options
serializeDelData : function(postdata) {
return {
'buName' : $('#list1').jqGrid('getCell',
postdata.id, 'buName'),
'oper' : 'del'
}
}
}
);` $("#list1").jqGrid('inlineNav', "#prowed1", {
//cloneToTop:true,
//iconSet: "fontAwesome",
add : false,
edit : true,
editicon : 'fa fa-pencil-square-o',
save : true,
saveicon : 'fa fa-floppy-o',
editParams : {
aftersavefunc : function(id) {
jQuery('#list1').jqGrid('setSelection', id, false);
},
},
});`
答案 0 :(得分:1)
您应该提供演示,重现问题。突出显示大多数问题的原因是:错误的输入数据或错误的colModel
。 jqGrid的每一行都有id属性(rowid),它应该是输入数据的一部分:参见here。 id值必须是唯一的。如果你有id重复,那么你可能会选择/突出显示行。
如果从数据库填充数据,则可以使用数据库表中的本机ID来构建唯一的rowid。数据库表也不允许id重复。
为了能够编辑数据库中的数据,您需要识别编辑的数据。这种独特的价值可以用作rowid。如果您通过多个表格中的JOIN填充网格,则可以使用撰写的ID 。例如,如果使用两个表User和Location中的数据填充网格,则paar(user_id,location_id)是唯一的。如果user_id和location_id都是数字,那么您可以使用user_id + "_" + location_id
作为rowid。该值将在编辑期间发送到服务器,您将获得完整信息以查找表中的数据,这些数据需要修改。
答案 1 :(得分:0)
我认为您在数据中遇到唯一ID问题。检查在网格中插入数据时使用的ID是唯一的,并且没有重复的。
亲切的问候
答案 2 :(得分:0)
在ColModel
中,确保属性key:true
仅指定一次并表示唯一的行ID值。见http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_options