选中的行未在jqgrid中突出显示

时间:2017-07-10 14:10:14

标签: html jqgrid

我已经编写了行选择功能。它没有突出显示所选行(有时突出显示有时突出显示的其他行)并且没有按照我编写的方式显示图标。以下是代码 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);
            },
        },
    });`

3 个答案:

答案 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