【发布时间】:2016-04-21 13:58:29
【问题描述】:
我有一个网格,它使用网格参数height:'auto' 漂亮地加载到我的页面。网格的高度会根据行数进行调整。我将它设置为只加载一页,不管有多少行,所以没有最大高度,也没有寻呼机。
我有一个重新加载网格的方法,它也很有效。问题是,在reloadGrid 完成后,行数通常会发生变化,但网格的高度与最初加载时保持不变。由于设置了height:'auto',因此没有可用的滚动条,并且额外的行被隐藏且无法访问。我想要的是让网格的高度在重新加载网格数据后自动重新调整以适应行数。
我正在使用 jqGrid Guriddo 版本。
谢谢
【问题讨论】:
-
我建议您阅读以发布您的标准代码。我冷给你一些提示,如何改进使用免费 jqGrid 的当前新功能。您使用哪个 CSS 框架(jQuery UI、Bootstrap 或两者兼有)?你已经使用 Font Awesome 了吗?你是使用
loadonce: true还是你有很多行(>100000)并且已经实现了服务器端的分页、排序和过滤? -
那么我建议您只从服务器返回 所有数据一次,并使用简单的 JSON 格式,如
[{...}, .... {...}]和对象 {...}没有空格的命名属性。您可以使用loadonce: true, forceClientSorting: true选项。使用rowNum: 20, page: true。要拥有更多漂亮的图标,您应该在页面上包含 FreeAwesome CSS 并使用iconSet: "fontAwesome"选项。阅读更多here。我推荐cmTemplate: { autoResizable: true }, autoResizing: { compact: true }并尝试autoresizeOnLoad: true。 -
不客气!我看到了老问题。我建议您更改的第一件事是您发送到 jqGrid 的日期格式。最好使用
"2016-04-14"而不是"04/14/2016"并允许jqGrid 以正确的格式转换日期:通过添加sorttype: "date", formatter: "date", formatoptions: { newformat: "m/d/Y" }属性。它允许 jqGrid 对列的内容进行排序和过滤。我建议您将template: "number"添加到JobNum和QNTYOrdered列中。 -
如果
JobNum列中的值是唯一,那么您应该将key: true添加到JobNum列中。 jqGrid 将使用 rowids 与列中的内容。如果JobNum已经包含所需的值并且设置了key: true,则可以返回[{"id": 38863, "Ship_Date": "2016-04-14", "InsertorLabel": "Insert", "Customer": "Cust", "JobNum": 38863, ...}]之类的服务器数据或不带id属性。我建议从colModel中删除所有index属性并使用cmTemplate: {width:20},而不是在所有列中使用相同的属性。你可以删除loadError
标签: javascript jquery jqgrid