是否可以通过ajax JQGrid结构(列)与数据一起从服务器加载? 如果可能的话,你能举个例子吗?
答案 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),那么您可以创建完美的解决方案。