从服务器加载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方法的使用相结合(也请参见此处 ),那么您可以创建完美的解决方案。