java - jqGrid组合框: how to add values Dynamically

标签 java jquery jsp servlets jqgrid

我正在使用 JSP 和 Servlet(IDE:Eclipse,数据库:Oracle10)开发 Web 应用程序。 我正在使用 jqGrid 以表格格式显示记录。

我想从 servlet 获取 jqGrid 中组合框的值,到目前为止我已经完成了以下操作。

我正在 JSP scriplet 中访问 Servlet 传递的数组。

<%
    String[] stageIDs = (String[])request.getAttribute("combo");
%>

以下是我的 colModel:

jQuery("#list10_d").jqGrid({
            height: "100%",
            url:'ProtocolJGridServChild?q=2&action=protAction',
            datatype: "xml",
colNames:['Sr. No.','PID',  'SID'],
colModel:[{name:'srNo',index:'srNo', width:35,sortable:true},
{name:'PID',index:'PID', width:100,sortable:false,editable:true,hidden:true},
{name:'SID',index:'SID', width:100, sortable:false, editable:true, edittype:"select",editoptions:{value:<%for(int i=0;i<stageIDs.length;i++)%><%="ID:"+ stageIDs[i]+";"%>}}
],
            rowNum:2,
            rowList:[2,4,6],
            pager: '#pager10_d',
            sortname: 'PID',
            viewrecords: true,
            sortorder: "asc",
            multiselect: true,
            editurl: "MyServletName",
            caption:"CRM_PROT_ACTIONS",
}).navGrid('#pager10_d',{edit:true,add:true,del:true});

但是我在 for 循环行 中遇到异常,我将 editoptions 分配给组合框。请告诉我代码是否有错误。

我的另一个问题是,有没有更好的方法可以从 servlet 为 jqGrid 中的组合框赋值(不使用 scriplet)?

最佳答案

您应该在 editoptions 内使用 dataUrl 而不是 value从服务器获取组合框的值。如果服务器返回 JSON 数据而不是 HTML 片段,您可以使用 buildSelect 将服务器响应从 dataUrl 转换为 jqGrid 需要的格式。确切的实现可能取决于您使用的 jqGrid 版本。您可以使用ajaxSelectOptions将相应Ajax请求的typedataType从默认的“html”更改为“json”(参见here)。请参阅here buildSelect 实现示例。

关于java - jqGrid组合框: how to add values Dynamically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14372197/

相关文章:

jsp - 使用消息存储拦截器进行 Struts 2 验证

java - 混淆类级别和实例级别

javascript - 在 Google Apps 脚本中定义多个范围

javascript - 如何解决 JavaScript 错误 : method XX is undefined?

javascript - 单击它移动窗口的元素中心

jsp - stripes 框架中的占位符标签

mysql - 在jsp页面显示mysql代码输出

java - 如何从 Java 连接到 SOAP 服务器并运行我的服务器内置方法/服务?

java - 使用合作伙伴 WSDL 创建 SFDC 机会

Java - int 值 1 与 2,147,483,647 的内存分配