我是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”),但下拉列表仍为空。
我的问题是:
是否有一种特殊的方法来组织数据以构建这个组合人群?
任何帮助表示赞赏。
答案 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
的示例。