2014-02-21 58 views
2

我正在嘗試使用,Grid(可編輯/多選)中演示的使用struts2-jquery-grid-3.7.0插件的Struts jQuery網格。使用struts2-jquery-grid插件的Struts2中的網格

Struts的形成:

<s:form namespace="/admin_side" action="Test" validate="true" id="dataForm" name="dataForm"> 
    <s:url id="remoteurl" action="TestGrid" namespace="/admin_side"/> 
    <s:url id="editurl" action="edit-grid-entry"/> 
    <sjg:grid 
     id="gridmultitable" 
     caption="Example (Editable/Multiselect)" 
     dataType="json" 
     href="%{remoteurl}" 
     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="countryId" index="countryId" title="Id" formatter="integer" editable="false" sortable="true" search="true" sorttype="integer" searchoptions="{sopt:['eq','ne','lt','gt']}"/> 
     <sjg:gridColumn name="countryName" index="countryName" title="Country Name" editable="true" edittype="text" sortable="true" search="true" sorttype="text"/> 
     <sjg:gridColumn name="countryCode" index="countryCode" title="Country Code" sortable="true" search="true" editable="true" sorttype="text"/> 

    </sjg:grid> 
</s:form> 

動作類:

@Namespace("/admin_side") 
@ResultPath("/WEB-INF/content") 
@ParentPackage(value = "json-default") 
@InterceptorRefs(@InterceptorRef(value = "store", params = {"operationMode", "AUTOMATIC"})) 
public final class TestAction extends ActionSupport implements Serializable 
{ 
    @Autowired 
    private final transient CountryService countryService=null; 
    private static final long serialVersionUID = 1L; 
    // Result List 
    private List<Country> gridModel; 
    // Get how many rows we want to have into the grid - rowNum attribute in the grid 
    private Integer rows=5; 
    // Get the requested page. By default grid sets this to 1. 
    private Integer page=1; 
    // sorting order - asc or desc 
    private String sord; 
    // get index row - i.e. user click to sort. 
    private String sidx; 
    // Search Field 
    private String searchField; 
    // The Search String 
    private String searchString; 
    // The Search Operation ['eq','ne','lt','le','gt','ge','bw','bn','in','ni','ew','en','cn','nc'] 
    private String searchOper; 
    // Your Total Pages 
    private Integer total; 
    // All Records 
    private Integer records; 

    @Action(value = "TestGrid", 
    results = { 
     @Result(name = ActionSupport.SUCCESS, type = "json", params = {"includeProperties", "gridModel\\[\\d+\\]\\.countryId, gridModel\\[\\d+\\]\\.countryName, gridModel\\[\\d+\\]\\.countryCode", "excludeNullProperties", "true"})}, 
    interceptorRefs = { 
     @InterceptorRef(value = "json")}) 
    public String execute() { 
     records=countryService.rowCount().intValue(); 
     total=new BigDecimal(records).divide(new BigDecimal(rows), 0, BigDecimal.ROUND_CEILING).intValue(); 
     gridModel=countryService.getList(page, rows, null, null); 

     System.out.println("records "+records+" total "+total+" Page " + getPage() + " Rows " + getRows() + " Sort Order " + getSord() + " Index Row :" + getSidx()+"Search :" + searchField + " " + searchOper + " " + searchString); 
     return SUCCESS; 
    } 

    public String getJSON() { 
     return execute(); 
    } 

    public Integer getRows() { 
     return rows; 
    } 

    public void setRows(Integer rows) { 
     this.rows = rows; 
    } 

    public Integer getPage() { 
     return page; 
    } 

    public void setPage(Integer page) { 
     this.page = page; 
    } 

    public Integer getTotal() { 
     return total; 
    } 

    public void setTotal(Integer total) { 
     this.total = total; 
    } 

    public Integer getRecords() { 
     return records; 
    } 

    public void setRecords(Integer records) { 
     this.records = records;    
    } 

    public List<Country> getGridModel() { 
     return gridModel; 
    } 

    public void setGridModel(List<Country> gridModel) { 
     this.gridModel = gridModel; 
    } 

    public String getSord() { 
     return sord; 
    } 

    public void setSord(String sord) { 
     this.sord = sord; 
    } 

    public String getSidx() { 
     return sidx; 
    } 

    public void setSidx(String sidx) { 
     this.sidx = sidx; 
    } 

    public void setSearchField(String searchField) { 
     this.searchField = searchField; 
    } 

    public void setSearchString(String searchString) { 
     this.searchString = searchString; 
    } 

    public void setSearchOper(String searchOper) { 
     this.searchOper = searchOper; 
    } 

    @Action(value = "Test", 
    results = { 
     @Result(name = ActionSupport.SUCCESS, location = "Test.jsp"), 
     @Result(name = ActionSupport.INPUT, location = "Test.jsp")}, 
    interceptorRefs = { 
     @InterceptorRef(value = "defaultStack", params = {"validation.validateAnnotatedMethodOnly", "true", "validation.excludeMethods", "load"})}) 
    public String load() throws Exception { 
     return ActionSupport.SUCCESS; 
    } 
} 

如圖所示following快照Previous和分頁鏈接總是被禁用。

enter image description here

這表明,頁面1 1。沒有更多的頁面。因此,鏈接被禁用。

在​​方法,但是,records被初始化爲31total7Page1Rows5。所有其他屬性均爲始終爲 null單擊用於排序,搜索,編輯,添加行的鏈接/按鈕。

我在這裏忽略了什麼?

回答

1

您忘記了將字段添加到json,表示電網正常工作所必需的結果。更改爲

@Result(type = "json", params = {"includeProperties", "gridModel\\[\\d+\\]\\.countryId, gridModel\\[\\d+\\]\\.countryName, gridModel\\[\\d+\\]\\.countryCode, total, records, rows, page, sord, sidx, searchField, searchString, searchOper", "excludeNullProperties", "true"}) 

此外,json攔截器是沒有必要的,但需要params

@InterceptorRef("params") 
+0

謝謝。這工作。它屬性真的'sord'而不是'排序'?當我將它命名爲「排序」時,它不起作用。 – Tiny

相關問題