问题描述
我发现我们可以用 JSON 字符串加载 jqGird.
I found that we can load the jqGird with JSON string.
请参考将JSON数据映射到jqGrid.
是否可以将此功能与 sjg:grid 标签一起使用?
Is it possible to use this feature with sjg:grid tag?
我查看了标签属性,只发现可以从 URL 加载数据,该 URL 将调用 Struts 动作并且该动作返回 JSON 数据,但在我的程序中我已经有了 JSON 值,需要将其传递给jqGird.
I look at tag attribute and only find that the data can be loaded from a URL which will call a Struts action and that action returns a JSON data, but in my program I already have the JSON value and need to pass it to jqGird.
如果标签不支持数据,使用 Struts 2 jQuery 插件中包含的 jqGrid 的最佳方式是什么.
If the tag does not support data, what is the best way to use jqGrid which are included in Struts 2 jQuery plugin.
推荐答案
将 dataType="local" 设置为 sjg:grid 并移除 href 属性.然后提供数组中的行数据.例如
Set the dataType="local" to the sjg:grid and remove href attribute. Then provide row data from the array. For example
<sjg:grid id="gridtable" caption="Example (Editable/Multiselect)" dataType="local" pager="true" navigator="true" navigatorSearchOptions="{sopt:['eq','ne','lt','gt']}" navigatorAddOptions="{height:280, width:500, reloadAfterSubmit:true}" navigatorEditOptions="{height:280, width:500, reloadAfterSubmit:false}" navigatorEdit="true" navigatorView="true" navigatorViewOptions="{height:280, width:500}" navigatorDelete="true" navigatorDeleteOptions="{height:280, width:500,reloadAfterSubmit:true}" gridModel="gridModel" rowList="5,10,15" rowNum="5" rownumbers="true" editurl="%{editurl}" editinline="true" multiselect="true" onSelectRowTopics="rowselect" > <sjg:gridColumn name="id" index="id" title="Id" formatter="integer" editable="false" sortable="true" search="true" sorttype="integer" searchoptions="{sopt:['eq','ne','lt','gt']}"/> <sjg:gridColumn name="name" index="name" key="true" title="Country Name" editable="true" edittype="text" sortable="true" search="true" sorttype="text"/> </sjg:grid> <script type="text/javascript"> $(document).ready(function(){ var mydata = [{id:"1",name:"Roman C"}]; //for(var i=0;i<=mydata.length;i++) $("#gridtable").jqGrid('addRowData',i+1,mydata[i]); $("#gridtable").jqGrid('setGridParam', { data: mydata }).trigger("reloadGrid"); }); </script>