我需要在我的网格中创建一个自定义按钮,它将打开一个模态,该模式将根据所选行呈现带有选项的选择字段。
因此用户将选择一行并单击按钮。行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
并填充模态...
提前致谢。
答案 0 :(得分:1)
我找到了解决方案。在这里发帖,希望它可以帮助别人。
我最终使用普通的旧jquery脚本来显示模式而不是jquery-plugin。
只需构建你的动作网址,添加所需的参数并调用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),并带有相应的getter和setter。