jqGrid:dataurl无效

时间:2012-07-16 16:52:54

标签: servlets select jqgrid population

我是jQuery和jQGrid的新手。我试图用来自服务器的数据填充网格中的下拉组合框,我在java servlet环境中。 我使用了dataUrl方法和许多其他方法,但仍然没有运气组合。

我的js看起来像:

...
{name:'idTipologia',index:'idTipologia', width:80,editable: true,edittype:"select",editoptions:{dataUrl: "/sohara/comboTipologiaAction.do"}...
...

我的服务器端代码基本上是:  从服务器获取列表,格式化数据(无论是否为json),打开PrintWriter,在其中写入信息。

我尝试了来自Firebug的JSON转换和纯文本我可以看到响应格式正确(“1:VALUE1; 2:VALUE2”),但下拉列表仍为空。

我的问题是:

是否有一种特殊的方法来组织数据以构建这个组合人群?

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

根据jqGrid documentation,您的问题是dataUrl需要返回包含SELECT元素的HTML,而不是JSON:

  

editoptions dataUrl参数仅对edittype:select元素有效。 dataUrl参数表示应该从html选择元素获取的URL。

     

设置此选项后,元素将填充AJAX请求中的值。数据应该是带有所需选项的有效HTML select元素 - 类似于:

<select> 
<option value='1'>One</option> 
<option value='2'>Two</option> 
...
</select>

所以最简单的解决方案就是让你只返回HTML。

<小时/> 也就是说,我不喜欢直接返回UI元素的想法。另一种选择是使用buildSelect函数为您构建SELECT元素:

  

仅当设置了dataUrl参数时,此选项才有意义。当服务器响应无法构建select元素时,您可以使用自己的函数来构建select。该函数应该返回一个包含select和options值的字符串,如dataUrl选项中所述。传递给此函数的参数是服务器响应

This answer提供了如何使用buildSelect的示例。