我试图弄清楚如何根据其内容调整网格的列。
这仅适用于特定的列。
到目前为止,我所做的是通过遍历行并比较内容的长度来调整colModel。

如果内容超过了先前的已知长度,它将再次调整colModel。
看起来像这样。

        // Get rowId's and get find the longest content
        $.each(grid.jqGrid('getDataIDs'), function(row, rowid) {
            // Loop through the specified columns
            $.each(abo_fields, function(colid, column) {
                var abo = grid.jqGrid('getCell', rowid, column);
                var new_width = abo.length * 8;
                var current = grid.jqGrid('getColProp', column);
                if(current['width'] < new_width) {
                    grid.jqGrid('setColProp', column, {width:new_width});
                }
            });
        });


当我请求getColProp时,将对colModel进行调整。
当我使用grid.trigger('reloadGrid');该列似乎与原始colModel中指定的相同。
我也尝试通过jquery调整CSS,但这也不成功。

任何帮助将不胜感激。

最佳答案

因此,我在colModel选项中做了一些进一步的挖掘,发现了以下内容:

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_options


以下是在构建网格时无法动态更改的选项(如果更改,它们将无效或会导致网格错误)。对于其中一些选项,有一些方法可以更改值。


name
width
resizable
label (method avail.)


jqGrid Wiki在需要和何时需要时也说明了以下内容。只需记住,完成此操作后,网格中内置的所有逻辑都将消失。


用当前设置重新加载网格。这意味着如果数据类型为xml或json,则将新请求发送到服务器。此方法应应用于已经构造的网格。请注意,此方法不会更改HEADER信息,这意味着对colModel的任何更改都不会受到影响。您应该使用gridUnload使用不同的colModel重新加载新配置。只有在loadonce时才有效:错误!!!


http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods

希望这也可以帮助其他人:)

07-24 16:22