2012-03-28 13 views
0

私は、ページのロード時にデータを表示するグリッドと、サブミット時にdatepickerから変数を取得し、最後にアクションを呼び出すフォームを持っています。新しいJSON結果を上のグリッドにロードしたいが、空白ページにjsonオブジェクト要素を追加する代わりに、 ({"JSON": "SUCCESS"、 "endDate": "28/03/2012"、 "listOfLogs ":[{" 日付 ":" Struts2の2.3.1.2 :私は、次のLIBSを使用していますstruts2フォームのサブミット後にグリッドにjson結果をロードする方法

<s:url id="getCurrentDateLogs" action="getCurrentDateLogs"/> 

<sjg:grid 
    id="getLogs" 
    dataType="json" 
    href="%{getCurrentDateLogs}" 
    gridModel="listOfLogs" 
    onSelectRowTopics="rowselect" 
    loadonce="true" 
    > 
    <sjg:gridColumn name="userid" index="userid" title="User ID" sortable="true" align="center"/> 
    <sjg:gridColumn name="username" index="username" title="Username" sortable="true"/> 
    <sjg:gridColumn name="logaction" index="logaction" width="600" title="Action" sortable="true"/> 
    <sjg:gridColumn name="date" index="date" title="Date" sortable="true" sorttype="date" align="center"/> 
    <sjg:gridColumn name="time" index="time" title="Time" sortable="true" sorttype="time" align="center"/>  
</sjg:grid> 

<s:form action="getLogsByDates" id="form2" theme="simple" cssClass="yform"> 
    <table class=""> 
     <tr><td>from:</td> 
      <td><sj:datepicker value="yesterday" id="from" name="startDate" displayFormat="dd/mm/yy" label="from" /></td> 
     </tr> 
     <tr><td>to:</td> 
      <td><sj:datepicker value="today" id="to" name="endDate" displayFormat="dd/mm/yy" label="to" /></td> 
     </tr> 
     <tr><td colspan="2"> 
     <sj:submit 
      value="Search" 
      button="true" 
      indicator="indicator" 
      /> 
     </td></tr> 
    </table> 
</s:form> 

27-03-2012" ...など)

は、これは私のコードですstruts2-jquery 3.3.0 struts2-jquery-grid-plugin 3.3.0

何か提案がありますか? ありがとうございました!

答えて

0

まず、フォームIDとグリッド値をリロードするトピックをsjg:gridタグに指定する必要があります。これを行うと、フォーム内の値を送信し、グリッドをリロードします。つまり、getCurrentDateLogsアクションのexecute()メソッドはJSONを返す必要があります。または、getLogsByDatesアクションのexecute()メソッドをgetCurrentDateLogsの別のメソッドに移動することもできます。

だから、次のようになります。

public class GetCurrentDateLogs extends ActionSupport 
{ 

    public execute() 
    { 
     return INPUT; 
    } 

    public String getLogsByDates() 
    { 
     //Your code, sets listOfLogs, page, total etc... 
     return JSON; 
    } 
} 

そして、あなたのJSPで:

<s:url id="getCurrentDateLogs" action=GetCurrentDateLogs" method="getLogsByDates"/> 

    <sjg:grid 
     id="getLogs" 
     formIds="form2" 
     reloadTopics="reloadMyGrid" 

そして、あなたは<sj:submit><sj:a>にタグを変更し、真のボタン属性を設定する必要があります。 <sj:submit>タグで動作するかもしれませんが、私は試したことがありません。最後に、ボタンに変更する必要があります

<sj:a button="true" buttonIcon="yourIcon" onClickTopics="reloadMyGrid">Search</sj:a> 

は、この情報がお役に立てば幸いです。

+0

私はまだ試してみましたが、まだ動作していません。私のコードはhttp://stackoverflow.com/questions/14466984/struts2-jquery-grid-ajax-data-reload-on-form-submitにあります。 –

+0

同じ?私が他の郵便で見ることができるように、別の人があなたに言ったonSuccessTopicsの代わりにonClickTopicsを使うように言った – batbaatar

0

少なくとも、sj:submitは属性targets = "getLogs"を設定する必要があります。あなたはまた、他のものを逃しているかもしれません。

関連する問題