Struts2子网格在扩展

时间:2015-12-14 15:48:11

标签: jquery struts2 jqgrid

我正在使用Struts2网格。我想在重新加载子网格时发送一个javascript对象和rowId。我使用的代码如下。我在onSubGridRowExpanded

上调用以下函数
    $.subscribe('subgridExpanded', function(event, data) {
    var rowId =  event.originalEvent.row_id;

    var pData = {
                    'sId' : rowId, 
                    'sJSONStr' : sJsonList  // sJsonList is javascript global variable
                   };


     $("#packageSubGrid").jqGrid('clearGridData').jqGrid('setGridParam',
            { 
                datatype: 'local',
                page : 1,
                postData: pData,
                data:data.packageSubList
            }).trigger("reloadGrid");  

});

我无法重新加载子网格。服务器端的方法被调用,但参数为null。 struts2中的网格代码如下所示

 <s:url id="shipmentUrl" action="getGrid" />
                <sjg:grid id="shipmentGrid" href="%{shipmentUrl}"   dataType="json"
                caption="S Details" gridModel="shipmentList" requestType="post"
                formIds="mForm" multiboxonly="true" multiselect="true"
                multiselectWidth="50" onSelectAllTopics="onSelectAll"
                rowList="100,500,1000" pager="true" sortorder="desc"
                navigator="true" navigatorSearch="false" navigatorAdd="false" navigatorEdit="false" navigatorDelete="false"  
                rowNum="1000" rownumbers="false" gridview="false" onSubGridRowExpanded="subgridExpanded"
                >

         //subgrid code
                    <s:url id="packageSubUrl" action="getSubGrid"  />
                    <sjg:grid id="packageSubGrid" subGridUrl="%{packageSubUrl}" dataType="json" 
                             sortorder="desc" cssStyle="float: left;" requestType="post" gridview="true" 
                             gridModel="packageSubList"
                             footerrow="false"
                             userDataOnFooter="false"  onGridCompleteTopics="subGridComplete" >

                            <sjg:gridColumn name="pId" index="pId" id="pId"
                                title="P Id" align="center" sortable="false" width="110" />
                            <sjg:gridColumn name="pName" index="pName" id="pName" title="P Name"
                                align="center" sortable="false" width="110" />

                    </sjg:grid>         


                <sjg:gridColumn name="sName" index="sName"
                    id="sName" title="S Name" align="center"
                    sortable="true" width="105" />

                <sjg:gridColumn name="sId" index="sId" 
                    id="sId" title="S"  key="true" />
    </sjg:grid>         

所以我的问题是我无法在Struts2中找到任何关于如何使用subgrid而不是id发布额外参数的内容。所以我试图使用jqgrid方法来做,但是pData在服务器端变为null,而且我无法使用data.packageSubList通过setGridParam重新加载子网格,这通常适用于普通网格。

0 个答案:

没有答案