从服务器加载jqgrid结构,而不仅仅是数据

时间:2014-01-03 14:01:58

标签: javascript jquery ajax jqgrid

是否可以通过ajax JQGrid结构(列)与数据一起从服务器加载? 如果可能的话,你能举个例子吗?

2 个答案:

答案 0 :(得分:2)

没有理由不这样做,你只是想以正确的顺序做事(异步),就像这样(原谅伪代码)

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调用,一个用于数据,一个用于结构,然后当它们两个完全混合在一起并实例化你的网格对象

答案 1 :(得分:2)

您可以使用所有隐藏列创建jqGrid。您需要创建具有足够数量列的网格。列的名称(在colModel中)可以包含一些通用值,例如"c1""c2""c3" ...来自服务器的响应可以包含{{1}信息与数据一起。在colModel回调内,您可以更改beforeProcessing并设置新的列标题。 The answer演示了动态设置列标题。使用colModel方法简化代码列。 Another answer演示了如何使用setLabel动态设置setColProp的最多设置。如果您将解决方案与我在the answer中发布的colModel方法的使用结合起来(请参阅here),那么您可以创建完美的解决方案。