1

struts2-Jqueryグリッドがあります。グリッド行をダブルクリックするときは、グリッド行キーをcaputerdし、キーに対応するデータベースから詳細をフェッチして結果をjqueryダイアログに表示するstruts2アクション(jsonを返す)を呼び出す必要があります。次の方法で実装しましたが、マッピングが正しくないため、ダイアログが表示されませんでした。

次に、セッションを使用してjspに保存して読み取りましたが、毎回同じ値が表示されます

知る方法を見つけるために助けが必要です

$("#detailDialog").load("<s:url value="my-dialogAction"/>"+"?gridKey="+key);     
should returns success and only then to publish   
$.publish('loadSuccessConfirm');    

コードスニペット

---------jqueryグリッドコード---------

< sjg:grid id="mytable" ..   
.. ..  
onDblClickRowTopics="popup"  
>  

< sjg:gridColumn .. />   
< sjg:gridColumn .. /> ..  

-------------javaスクリプト---

< script type="text/javascript" >  
$.subscribe('popup', function(event, data) {  
    var key = $("#mytable").jqGrid('getGridParam','selrow');  
    $("#detailDialog").load("<s:url value="my-dialogAction"/>"+"?gridKey="+key);  
    $.publish('loadSuccessConfirm');  

});  

< /script> 

- - - - - - - - ダイアログ - - - - - -

< sj:div id="detailDialog" name="detailDialog" >  
< sj:dialog position="center" height="200" width="500" openTopics="loadSuccessConfirm"   name="dialog1"  id="dialog1" autoOpen="false"  >  

    < s:iterator value="#session.comparePorts" status="stat" var="stack">  
        < tr>  
        < td><s:property value="#stack.airPortFrom"/> </td>  
        < td><s:property value="#stack.transportMode"/></td>  
        < td><s:property value="#stack.svc"/></td>    
        < td><s:property value="#stack.calcCostLoad"/></td>  

        < /tr>  
        <  /s:iterator>  

< /sj:dialog>   

< /sj:div>  

アップデート

スクリプトコードを以下のように編集しましたが、成功すると公開されますが、ダイアログに古い値が表示され、更新されません

$.subscribe('popup', function(event, data) {
    var key = $("#mepctable").jqGrid('getGridParam','selrow');
    $("#detailDialog").load("<s:url value="my-dialogAction"/>"+"?gridKey="+key,
        function() { alert("success");$.publish('loadSuccessConfirm');});

});
4

1 に答える 1

1

<s:property />タグはページのレンダリング時に評価され、変更されません。

ダイアログコンテンツを別のjsp/actionとして配置し、ajaxを使用して。のhref属性を使用してそのページを呼び出す必要がある場合があります<sj:dialog />listenTopicsまた、行をダブルクリックしたときにダイアログをリロードするために使用します。

https://code.google.com/p/struts2-jquery/wiki/DialogTag

于 2013-01-25T01:32:13.750 に答える