1

我是 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”),但下拉列表仍然为空。

我的问题是:

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

任何帮助表示赞赏。

4

1 回答 1

2

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

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

设置此选项后,元素将填充来自 AJAX 请求的值。数据应该是具有所需选项的有效 HTML 选择元素 - 例如:

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

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


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

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

这个答案提供了一个如何使用的例子buildSelect

于 2012-07-16T19:00:01.993 回答