Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从服务器加载jqgrid结构,而不仅仅是数据_Javascript_Jquery_Ajax_Jqgrid - Fatal编程技术网

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

Javascript 从服务器加载jqgrid结构,而不仅仅是数据,javascript,jquery,ajax,jqgrid,Javascript,Jquery,Ajax,Jqgrid,是否可以通过ajax JQGrid结构(列)从服务器加载数据? 如果可能的话,你能举个例子吗 没有理由不这样做,您只需要按照正确的顺序(异步)做事,类似这样的事情(请原谅psuedo代码) 这会让你走到那里的一段路。我猜您也会希望通过Ajax加载数据,在这种情况下,您可以将jqGrid设置中的“Data”选项设置为回调函数(这没有很好的文档),或者您可以启动两个Ajax调用,一个用于数据,一个用于结构,然后当它们都返回到一起并实例化您的网格对象时,没有理由不这样做,您只需要按照正确的顺序(异步)

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

没有理由不这样做,您只需要按照正确的顺序(异步)做事,类似这样的事情(请原谅psuedo代码)


这会让你走到那里的一段路。我猜您也会希望通过Ajax加载数据,在这种情况下,您可以将jqGrid设置中的“Data”选项设置为回调函数(这没有很好的文档),或者您可以启动两个Ajax调用,一个用于数据,一个用于结构,然后当它们都返回到一起并实例化您的网格对象时,没有理由不这样做,您只需要按照正确的顺序(异步)进行操作,类似这样的事情(请原谅psuedo代码)


这会让你走到那里的一段路。我猜您也会希望通过Ajax加载数据,在这种情况下,您可以将jqGrid设置中的“Data”选项设置为回调函数(这没有很好的文档),或者您可以启动两个Ajax调用,一个用于数据,一个用于结构,然后当它们都返回时,将两者合并并实例化网格对象

您可以使用所有隐藏列创建jqGrid。您需要创建具有足够多列的网格。列的名称(在
colModel
中)可以有一些通用值,如
“c1”
“c2”
“c3”
。。。来自服务器的响应可以包含
colModel
信息和数据。在
beforeProcessing
回调中,您可以更改
colModel
并设置新的列标题。演示如何动态设置列标题。代码列可以通过用法
setLabel
方法简化。演示如何使用
setColProp
动态设置
colModel
full的大多数设置。如果您将该解决方案与我发布的
setColWidth
方法结合使用(请参见),那么您可以创建完美的解决方案。

您可以创建包含所有隐藏列的jqGrid。您需要创建具有足够多列的网格。列的名称(在
colModel
中)可以有一些通用值,如
“c1”
“c2”
“c3”
。。。来自服务器的响应可以包含
colModel
信息和数据。在
beforeProcessing
回调中,您可以更改
colModel
并设置新的列标题。演示如何动态设置列标题。代码列可以通过用法
setLabel
方法简化。演示如何使用
setColProp
动态设置
colModel
full的大多数设置。如果您将该解决方案与我发布的
setColWidth
方法结合使用(参见),那么您可以创建完美的解决方案。

您是否试图在AJAX调用之前定义网格,而不定义列,或者在调用之后声明/定义网格和列是一个选项?@AJ我需要在服务器调用之后定义网格列,因为它取决于一些应该在服务器端计算的条件。在客户端,我只有一个网格对象,每次都应该填充/重新填充不同的列和数据。您是否试图在AJAX调用之前定义网格而不定义列,或者在调用之后声明/定义网格和列是一个选项?@AJ我需要在服务器调用之后定义网格列,因为它取决于一些应该在服务器端计算的条件。在客户端,我只有一个网格对象,每次都应该填充/重新填充不同的列和数据。非常感谢!如果你能用数据来扩展你的例子,我将不胜感激。我的意思是在一个ajax调用中,而不是两个调用中。这是一个很好的答案。为了完成数据部分,我将使用
数据类型:“local”
定义网格,在服务器的数组对象中设置列数据,然后迭代添加每一行。非常感谢!如果你能用数据来扩展你的例子,我将不胜感激。我的意思是在一个ajax调用中,而不是两个调用中。这是一个很好的答案。为了完成数据部分,我将使用
数据类型:“local”
定义网格,在服务器的数组对象中设置列数据,然后迭代添加每一行。
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)

})