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 脚本来显示模式而不是 jquery-plugin。

只需构建您的操作 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();
        }
    });
});

在您的操作中,您必须使用相应的 getter 和 setter 声明一个与您的 url 参数(在我的情况下为 nrProcesso)同名的变量。

于 2012-10-18T21:30:48.863 回答