JqGrid-冻结列

JqGrid-冻结列,jqgrid,Jqgrid,我读了所有关于冻结专栏的帖子。但我仍然无法解决我的问题 当我调用setFrozenColumns时,我的列已冻结,但与另一列标题一起添加到网格中。因此,列标题比列标题多一个。如何解决这个问题。下面是我对代码的概述 makeJqueryGridInstance(grid, gridSettings); window.prepareSortableColumns(grid); makefrozenColumns(grid); function makeFrozenColumn( grid )

我读了所有关于冻结专栏的帖子。但我仍然无法解决我的问题

当我调用setFrozenColumns时,我的列已冻结,但与另一列标题一起添加到网格中。因此,列标题比列标题多一个。如何解决这个问题。下面是我对代码的概述

makeJqueryGridInstance(grid, gridSettings);
window.prepareSortableColumns(grid);

makefrozenColumns(grid);

function makeFrozenColumn( grid ) 
{
    var colmodel = grid.jqGrid('getGridParam', 'colModel');
    if (colmodel[0].name === 'cb') 
        {
            grid.jqGrid('setColProp', colmodel[0].name, { frozen: true });
            grid.jqGrid('setFrozenColumns');
            fixPositionsOfFrozenDivs.call(grid[0]);
        }
}

function prepareSortableColumns(grid) 
{
    var gridSettings = grid.data('settings');
    var gridId = gridSettings.gridId;
    var columnHeaders = $("#" + "gview_" + gridId.replace("#", "")).find(".ui-jqgrid-htable > thead > tr > th");
    var colModel = grid[0].p.colModel;
    $.each(columnHeaders, function (index, columnHeader) 
    {
        if (colModel[index].sortable == false) 
        {
            $(columnHeader).find("div").removeClass("ui-jqgrid-sortable");
        }
    });
 }
这是第一次,它工作良好,色谱柱冻结

但是第二次调用prepareSortableColumnsgrid时,columnHeader比我通过devTools调试的colModel多了一个。所以我得到了一个错误,因为特定的列头排序表是未定义的

有人能帮我吗。提前感谢。

prepareSortableColumns的代码似乎有误。在使用冻结柱的情况下,它不以DELVE为导向。有关更多详细信息,请参阅,并使用开发人员工具检查网格的结构。您可以尝试使用grid[0].grid.headers数组,而不是像这样选择columnHeaders

此外,删除ui jqgrid可排序类通常是错误的。该类的含义经常会因为名称而被误解。不可排序的列也必须具有类。您需要做的是在标题上设置CSS样式cursor:default。有关相应的代码示例,请参见