0

我正在开发一个 Struts 应用程序,我需要在 jqGrid 中使用对象列表填充一个表。

我不想使用 ajax 来填充表格,我想在请求中传递对象列表并在 JSP 中用它生成表格。

我该怎么办??

搜索我发现了一个与我相同的问题: http: //www.coderanch.com/t/549822/Struts/fill-jqgrid-java-object-list

问候

4

2 回答 2

1

您没有发布创建 jqGrid 的 JavaScript 代码的任何详细信息。所以我试着猜测你目前在做什么以及你可以做些什么来解决所描述的问题。我建议你尝试使用datatype: "json"loadonce: true如下jsonReader

jsonReader: {
    root: function (obj) { return obj; },
    repeatitems: false
}

如果存在包含唯一信息(如主键)的网格列,或者在网格的每一行中都是唯一的,那么您应该添加jsonReader额外的属性,例如id: "columName",其中"columName"是具有唯一信息的列的名称。

于 2013-03-05T12:16:49.000 回答
1

最后,我使用 JSON 将请求中的数据从 Java 传递到 Javascript

在 Struts Action 中,我这样做了

List<Object> dataList = Service.getData();
request.setAttribute("dataList", new Gson().toJson(dataList));

然后在 JSP 中的 Javascript 代码中,我对 JSON 值进行 eval 并将传递的字符串转换为数组:

<table id="tableExample"></table>

<script>

$("#tableExample").jqGrid({ 
    datatype: "local", 
    height: 250, 
    data: eval('<%= request.getAttribute("dataList") %>'),
    colNames:['col1','col2', 'col3', 'col4'], 
    colModel:[ 
        {name:'a1', index:'a1', width:150, align:"right", sorttype:"float"}, 
        {name:'a2', index:'a2', width:150, align:"right", sorttype:"float"}, 
        {name:'a3', index:'a3', width:150, align:"center", sorttype:"date", formatter:'date', formatoptions:{"srcformat":"d/m/Y","newformat":"d/m/Y"}}, 
        {name:'a4', index:'a4', width:150, align:"center", sorttype:"date", formatter:'date', formatoptions:{"srcformat":"d/m/Y","newformat":"d/m/Y"}}
    ], 
    caption: "Table Example"
}); 

</script>
于 2013-03-05T16:32:47.657 回答