你们知道如何防止在我单击添加按钮时打开表单吗?
也许使用 beforeShowForm?
function(formid)
{
if(jQuery('#gridap').getGridParam('selrow'))
{
idgridap=jQuery('#gridap').getGridParam('selrow');
jQuery('#FK_numerocontrato_ap',formid).val(idgridap).attr('readonly','readonly');
}
else
{
// I want to prevent the openning of the add form here and maybe show an alert using the "alertcap"
}
}
CHECAROW;
$grid->setNavEvent('add','beforeShowForm',$checarowid);
顺便说一句,有没有办法调用jqgrid的alertmod并添加自定义消息?
谢谢!
最佳答案
我不明白为什么您不直接从导航栏中删除“添加”按钮。要创建导航栏,您显式调用 jqGrid 的 navGrid
方法
jQuery("#grid_id").navGrid('#gridpager');
或
jQuery("#grid_id").jqGrid('navGrid', '#gridpager');
但是 navGrid
有其他参数(请参阅 http://www.trirand.com/jqgridwiki/doku.php?id=wiki:navigator )。所以如果你使用
jQuery("#grid_id").navGrid('#gridpager', {add: false});
您将没有“添加”按钮。
如果您确实需要“添加”按钮,请更清楚地解释您的情况。顺便用http://www.trirand.com/jqgridwiki/doku.php?id=wiki:custom_buttons中描述的方式您可以添加一个自定义按钮,并由您完全控制。图标名称可以在页面http://jqueryui.com/themeroller/找到如果将光标放在页面底部“框架图标”区域的图标上。自定义按钮可以具有与“添加”按钮相同的图标。能解决您的问题吗?
更新:在您发表评论后,我现在明白您的问题了。我可以建议使用 navGrid
的 addfunc
选项(请参阅 http://www.trirand.com/jqgridwiki/doku.php?id=wiki:navigator&s[]=navgrid )。所以代码可能如下所示:
var grid = jQuery("#grid_id").navGrid('#gridpager', {addfunc: function() {
var sel_id = grid.getGridParam('selrow');
if (sel_id) {
grid.editGridRow("new", pAddOption);
} else {
viewModal("#alertmod", { gbox: "#gbox_" + grid_id, jqm: true });
jQuery("#jqg_alrt").focus();
}
}});
在此示例中,仅当选择一行时才允许单击“添加”按钮。您将看到一个消息框,其中包含类似“请选择行”的文本(该文本在grid.locale-en.js中定义$.jgrid.nav.alerttext
> 或您使用的其他本地化文件)。您可以将此代码片段放置在主网格中。
拒绝“添加”操作的代码可以更简单,我只是在这里复制了一个使用jqGrid本身的代码片段。您可以改为显示自定义错误消息。
关于jquery - 防止单击添加按钮时打开表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2841794/