列宽问题? (太短或太宽)

时间:2015-08-17 14:10:20

标签: jqgrid free-jqgrid

关于free-jqgrid 4.9.2,它会自动处理列宽吗?不,那么处理这个问题的正确方法是什么?

1)VIN&年份列包含太多可用空间

2)Trim包含的记录很少,无法放入列宽(例如1993 Mitsubishi 3000GT 2 Dr VR-4 Turbo AWD两厢车)

另外,jqGrid在某处设置了真/假“自动换行”设置吗?

link removed

找到演示

1 个答案:

答案 0 :(得分:0)

自由宽度调整存在于以4.8版本开头的免费jqGrid中。免费的jqGrid仍然无法自动处理所有列的宽度。需要在colModel中为列添加一些其他属性,这些列应根据最长内容的宽度设置宽度,并设置一些其他选项。

您当前的代码使用width: 190'Vin',并且不为任何其他列指定任何width属性,因此将使用默认值width: 150。此外,您使用jqGrid的width: 1022选项和错误的选项autoWidth: true(而不是autowidth: true),这将被忽略。这意味着网格上div(bDiv或body div)的宽度将设置为1022px,用户可以使用水平滚动条查看所有列。

我建议你阅读the wiki article。您可以将autoResizable: true属性添加到某些特定列,或使用cmTemplate: { autoResizable: true }所有列中添加属性。结果,网格的每个单元格的内容将包含在<span class="ui-jqgrid-cell-wrapper">...</span>中。它允许空闲的jqGrid获取列的所有单元格的精确内容宽度,然后根据值计算最大值。因此,用户可以双击列缩放器(列之间)以将宽度设置为最佳值。在宽度计算jqGrid期间,列标题的宽度除了列的网格单元的宽度之外还有排序图标的宽度。可以使用autoResizing: { compact: true }选项来减少没有可见排序图标的列的宽度。最后一个常见选项是autoresizeOnLoad: true,我建议你使用它。它会将具有autoResizable: true属性的列的宽度设置为最佳值。

所以我建议你在网格中添加以下选项:

cmTemplate: { autoResizable: true },
autoResizing: { compact: true },
autoresizeOnLoad: true

之后,列的宽度看起来会更好。

如果您希望将某些列的文本包装得太长,那么您可以使用the old answer中描述的CSS设置并设置列maxColWidth的{​​{1}}属性(in autoResizing)或网格的colModel选项的全局设置maxColWidth到列的最大宽度。将包含更长的文本。