1

ページの読み込み時にデータを読み込むグリッドがあります。送信時にアクションを正しく呼び出すフォームもありますが、グリッドに新しいデータが読み込まれません。

リストは正しく取得されており、グリッドモデルでも正しく設定されています。Actionクラスからですが、SUCCESSが返されると、この形式でデータが返されます(以下の出力を参照)。

{"authFirstname":null,"authLastname":null,"bookDetailsobj":null,"bookTitile":null,"get":{"authFirstname":null,"authLastname":null,"bookTitile":null,"coverId":null,"createdDate":null,"createrId":null,"description":null,"editionId":null,"editionYear":null,"id":null,"img1":null,"img2":null,"isbn":null,"languageId":null,"locationId":null,"price":null,"publisherName":null,"quantity":null,"remarks":null,"subjectId":null,"updateId":null,"updatedDate":null,"videoUrl":null},"gridModel":[{"authFirstname":"234234","authLastname":"2323423","bookTitile":"23324234234","coverId":"soft cover","description":"243234","editionId":"General Edition","editionYear":"234234","id":42,"img1":"","img2":"","isbn":"324234","languageId":"English","locationId":"as","price":2.34234E7,"publisherName":"234234","quantity":234234,"remarks":"","subjectId":"General Fiction","videoUrl":""},{"authFirstname":"2423","authLastname":"23423","bookTitile":"asdfsdaf","coverId":"soft cover","description":"","editionId":"General Edition","editionYear":"2","id":39,"img1":"","img2":"","isbn":"2","languageId":"English","locationId":"as","price":234.0,"publisherName":"2","quantity":2,"remarks":"","subjectId":"General Fiction","videoUrl":""},{"authFirstname":"3","authLastname":"3","bookTitile":"232","coverId":"soft cover","description":"","editionId":"General"} 

私のjspコード:

         <sjg:grid
                id="getLogs"
                dataType="json"
                href="%{getCurrentDateLogs}"
                gridModel="listOfLogs"
                onSelectRowTopics="rowselect"
                loadonce="true"
                reloadTopics="reloadGrid"
                formIds="form2"
            >
            <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"
                        onClickTopics="reloadGrid"
                    indicator="indicator"
                    />
                </td></tr>
            </table>
         </s:form>

struts.xml

 <action name="getLogsByDates" class="v.esoft.actions.bookdetails.BookdetailsAction" >
            <result name="success"  type="json"/>
            <result name="login" type="redirect"> /index.jsp </result>
   </action> 

**出力がjqueryグリッドに表示されない理由がわかりません。私を助けてください**

4

3 に答える 3

2

私はこれがあなたが必要とするものだと思います:

  1. sj:submitタグを使用する代わりに、GridReloadTopicsを指すonClickTopicsでsj:aタグを使用します。

  2. 次に、sj:aをクリックすると、グリッドが再ロードされ、グリッドのhref属性で定義されたアクションにフォームが送信されます。

  3. このアクションにより、グリッドにデータを入力するJSONが生成される必要があります。

質問にアクション「getCurrentDateLogs」を表示していません。したがって、これはグリッドに入力するjsonの結果を返す必要があるアクションです。

また、グリッドデータがフォームフィールドによってどのように影響を受けるかを考えている必要があるため、簡単です。

  1. グリッドはすべてのフォームフィールドをhrefに記載されているアクションに送信するため、そのアクションのすべてのフォームフィールドにゲッターとセッターが必要です。

  2. 他の通常のグリッド属性とともに、gridModelに入力する値に基づいて、追加のフォーム属性を受け取るようになりました。

それでもわからない場合はお知らせください。

于 2012-11-04T17:27:13.177 に答える
0

このようには機能しません。次のことを試してください。

  1. jsonではなく、ページをリチューンするアクションを作成します

    <result name="success">page_with_the_grid.jsp</result>
    
  2. ページpage_with_the_grid.jspで、タグを使用s:urlしてjsonの結果をマッピングします。

    <s:url var="jsonUrl" action="jsonAction"/>
    
  3. で、sj:gridを使用href="%{jsonUrl}"してデータをグリッドに入力します。

を返すアクションを直接呼び出すとJSON、「奇妙な」出力であるjsonの結果が確実に得られます。

于 2012-11-04T14:10:55.363 に答える
0

フォームを送信した後、2つのグリッドが見つかりました。1つは古いもので、2つ目は検索グリッドにもページ全体が含まれています

<sj:a  href="%{form}" targets="result" indicator="indicator" button="true" buttonIcon="ui-icon-refresh"/>
于 2013-03-12T13:02:46.773 に答える