从服务器加载jqgrid结构,而不仅仅是数据
是否可以通过ajax JQGrid结构(列)与数据一起从服务器加载? 如果可能的话,请你举个例子吗?
没有理由不这样做,你只需要以正确的顺序做事(异步),就像这样(原谅伪代码)
var jqGridOptions = { /* various options here */ } $.ajax({ url: jqGridStructureUrl }).success(function(jqGridColumns){ // Add the col model to the other options jqGridOptions.colModel = jqGridColumns.colModel jqGridOptions.colNames = jqGridColumns.colNames // set up the jqGrid $j("#gridId").jqGrid(jqGridOptions) })
这将让你在那里的一部分。 我想你也想要通过Ajax加载数据,在这种情况下你可以将jqGrid设置上的“Data”选项设置为回调函数(这个文档没有很好记录) – 或者你可以触发两个ajax调用,一个用于数据,一个用于结构,然后当它们两个一起将两个一起混合并实例化你的网格对象时
您可以使用所有隐藏列创建jqGrid。 您需要创建具有足够数量列的网格。 列的名称(在colModel
)可以有一些通用值,如"c1"
, "c2"
, "c3"
……来自服务器的响应可以包含colModel
信息和数据。 在beforeProcessing
回调中,您可以更改colModel
并设置新的列标题。 答案演示了动态设置列标题。 使用setLabel
方法简化代码列。 另一个答案演示了如何使用setColProp
动态设置colModel
的最多设置。 如果您将解决方案与我在答案中发布的setColWidth
方法的使用相结合(也请参见此处 ),那么您可以创建完美的解决方案。