我试图弄清楚如何根据其内容调整网格的列。
这仅适用于特定的列。
到目前为止,我所做的是通过遍历行并比较内容的长度来调整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
希望这也可以帮助其他人:)