0

選択した行に応じたオプションで選択フィールドをレンダリングするモーダルを開くグリッドにカスタム ボタンを作成する必要があります。

したがって、ユーザーは行を選択してボタンをクリックします。クエリを作成して選択フィールドに入力できるように、行 ID を url パラメータとしてアクションに渡す必要があります。

これは私が苦労しているところです:

navigatorExtraButtons="{
    honorarios:{
        title: 'Consultar honorários do processo',
        caption: 'H',
        icon: 'none',
        onclick: function(){
            var id = jQuery('#processoTable').jqGrid('getGridParam','selrow');
            if (id) {
                var ret = jQuery('#processoTable').jqGrid('getRowData',id);
                // need to pass ret.nrProcesso as param to the URL that will load content into the modal
            } else { alert('Please select a row.');}
        }
    },

上記のコードを使用すると、選択した行から目的の ID 値を取得できます。しかし、私はそれをに割り当てる方法がわかりません

<s:url... param 

モーダルを設定します...

前もって感謝します。

4

1 に答える 1

1

私は解決策を見つけました。他の誰かに役立つことを期待してここに投稿します。

jquery-pluginの代わりにモーダルを表示するために、プレーンな古いjqueryスクリプトを使用することになりました。

必要なパラメーターを追加してアクション URL を作成し、ajax 関数を呼び出すだけです。

<sj:submit id="consulta_honorarios" value="Consultar Honorários" onClickTopics="honorarios" button="true"/>
<sj:dialog
    id="mydialog" 
    title="Consultar honorários" 
    autoOpen="false" 
    modal="true" 
    dialogClass="ui-jqdialog" 
/>

<script type="text/javascript">
jQuery(document).ready(function(){
    jQuery("#consulta_honorarios").click(function(){
        var actionURL = '<s:property value="%{advprocselecturl}" />';
        var id = jQuery('#processoTable').jqGrid('getGridParam','selrow');
        if (id) {
            var ret = jQuery('#processoTable').jqGrid('getRowData',id);
            actionURL += '?nrProcesso=' + ret.nrProcesso;
            // alert('id='+ret.nrProcesso+' / actionURL='+actionURL);
            jQuery.ajax({
                url: actionURL
            }).done(function(data){
                jQuery('#mydialog').html(data).dialog('open');
            });
        } else { 
            jQuery('<div />').html('Por favor, selecione um registro.').dialog();
        }
    });
});

アクションでは、それぞれのゲッターとセッターを使用して、url パラメーター (私の場合は nrProcesso) と同じ名前の変数を宣言する必要があります。

于 2012-10-18T21:30:48.863 に答える