Jqgrid 在不同事件中使用remapColumns时,排序图标不会';单击标题时不显示

Jqgrid 在不同事件中使用remapColumns时,排序图标不会';单击标题时不显示,jqgrid,Jqgrid,我将列排列信息保存到一个表中。此信息可以在beforeRequest事件中重新加载: mynewperm = {....}; myGrid.jqGrid("remapColumns", mynewperm, true); 列被正确地重新排序。但是我丢失了标题图标。现在,如果我单击任何列标题,我都看不到 不再使用排序图标,则无法对任何列进行排序。我怎样才能取回它 谢谢, yh我也有同样的问题: 因为我在“loadComplete”事件中应用了“remapColumns”方法(我从cookie中

我将列排列信息保存到一个表中。此信息可以在beforeRequest事件中重新加载:

mynewperm = {....};

myGrid.jqGrid("remapColumns", mynewperm, true);
列被正确地重新排序。但是我丢失了标题图标。现在,如果我单击任何列标题,我都看不到 不再使用排序图标,则无法对任何列进行排序。我怎样才能取回它

谢谢,

yh

我也有同样的问题:

因为我在“loadComplete”事件中应用了“remapColumns”方法(我从cookie中获取用户列配置),所以它附加到我身上

因此,当我尝试对列进行排序时,什么也没有发生。我在firebug中发现了以下错误:

a、 grid.headers[a.p.lastsort]未定义->jquery.jqGrid.min.js(第93行)

也许找到问题所在会有帮助

谢谢

我也有同样的问题:

因为我在“loadComplete”事件中应用了“remapColumns”方法(我从cookie中获取用户列配置),所以它附加到我身上

因此,当我尝试对列进行排序时,什么也没有发生。我在firebug中发现了以下错误:

a、 grid.headers[a.p.lastsort]未定义->jquery.jqGrid.min.js(第93行)

也许找到问题所在会有帮助


谢谢

如果您能够更改代码,您可以测试a.grid.headers[a.p.lastsort]的未定义值

在源文件中,它可能如下所示:

// old 
var previousSelectedTh = ts.grid.headers[ts.p.lastsort].el

// new:
var previousSelectedTh = ts.grid.headers[ts.p.lastsort] ? ts.grid.headers[ts.p.lastsort].el : null

如果您能够更改代码,则可以测试a.grid.headers[a.p.lastsort]的未定义值

在源文件中,它可能如下所示:

// old 
var previousSelectedTh = ts.grid.headers[ts.p.lastsort].el

// new:
var previousSelectedTh = ts.grid.headers[ts.p.lastsort] ? ts.grid.headers[ts.p.lastsort].el : null

事实上,如果您查看
jquery.jqGrid.src.js
源代码,这行代码是:

var previousSelectedTh = ts.grid.headers[ts.p.lastsort].el, newSelectedTh = ts.grid.headers[idxcol].el;
第#1982行在我的版本中。我通过修改文件修复了它,并在该行之前添加了以下内容:

        if (ts.p.lastsort < 0)  // johnl.
            ts.p.lastsort = 0;
if(ts.p.lastsort<0)//johnl。
ts.p.lastsort=0;

问题是
ts.p.lastsort
was-1。

事实上,如果您查看
jquery.jqGrid.src.js
源代码,行是:

var previousSelectedTh = ts.grid.headers[ts.p.lastsort].el, newSelectedTh = ts.grid.headers[idxcol].el;
第#1982行在我的版本中。我通过修改文件修复了它,并在该行之前添加了以下内容:

        if (ts.p.lastsort < 0)  // johnl.
            ts.p.lastsort = 0;
if(ts.p.lastsort<0)//johnl。
ts.p.lastsort=0;

问题是
ts.p.lastsort
was-1。

我自己刚刚设法解决了这个问题,但没有使用上述方法。我在尝试对jqgrid中的列进行排序时收到以下错误消息:

TypeError: a.grid.headers[a.p.lastsort] is undefined js/jqgrid/jquery.jqGrid.min.js?1.4:86
我应该注意到是Firebug产生了这个错误消息。我们公司为Chrome开发web应用程序,但Chrome的Javascript控制台产生了一条非常缺乏信息的错误消息:

Uncaught TypeError: Cannot read property 'el' of undefined 
在除去引起问题的页面上除jqGrid声明之外的所有声明后,发现删除jqGrid的“multiSelect”选项声明解决了问题。显然,声明此选项会导致在呈现的网格中添加一个额外的隐藏列,使用户可以一次选择多个网格行。我不太清楚这为什么会引起问题,但在咨询编程主管之后,我们最好的猜测是jqGrid库代码中的某个地方有一个for循环,当应用列排序时会调用该循环,而该循环没有考虑这个额外的列,这导致它没有被定义


奇怪的问题的奇怪答案,但希望这将有助于某人在未来,并节省他们约3小时的调试

我自己刚刚设法解决了这个问题,但没有使用上述方法。我在尝试对jqgrid中的列进行排序时收到以下错误消息:

TypeError: a.grid.headers[a.p.lastsort] is undefined js/jqgrid/jquery.jqGrid.min.js?1.4:86
我应该注意到是Firebug产生了这个错误消息。我们公司为Chrome开发web应用程序,但Chrome的Javascript控制台产生了一条非常缺乏信息的错误消息:

Uncaught TypeError: Cannot read property 'el' of undefined 
在除去引起问题的页面上除jqGrid声明之外的所有声明后,发现删除jqGrid的“multiSelect”选项声明解决了问题。显然,声明此选项会导致在呈现的网格中添加一个额外的隐藏列,使用户可以一次选择多个网格行。我不太清楚这为什么会引起问题,但在咨询编程主管之后,我们最好的猜测是jqGrid库代码中的某个地方有一个for循环,当应用列排序时会调用该循环,而该循环没有考虑这个额外的列,这导致它没有被定义


奇怪的问题的奇怪答案,但希望这将有助于某人在未来,并节省他们约3小时的调试

您是否尝试过将
updateCells
设置为false-
myGrid.jqGrid(“remapColumns”,mynewperm,false)?否则,如果您可以发布一个更大的代码示例,甚至是一个JSFIDLE,可能会有所帮助。代码位于:beforeRequest:function(){………..perm=processPermStr(permst);if(perm){myGrid.jqGrid(“remapColumns”,perm,true);}您是否尝试过将
updateCells
设置为false-
myGrid.jqGrid(“remapColumns”,mynewperm,false);
?否则,如果您可以发布一个更大的代码示例,甚至是一个jsfiddle,可能会有所帮助。只是尝试了一下,不起作用。代码位于:beforeRequest:function()中{………..perm=processPermStr(permst);if(perm){myGrid.jqGrid(“remapColumns”,perm,true);}