当我点击添加按钮时,您是否知道如何阻止打开表单?
也许使用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并为其添加自定义消息吗?
TKS!
答案 0 :(得分:4)
我不明白为什么你不只是从导航栏中删除“添加”按钮。要创建导航栏,请显式调用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/上找到图标的名称。自定义按钮可以与“添加”按钮具有相同的图标。它可以解决你的问题吗?
更新:在您发表评论后,我了解您的问题。我可以建议使用addfunc
的{{1}}选项(请参阅http://www.trirand.com/jqgridwiki/doku.php?id=wiki:navigator&s[]=navgrid)。因此代码可能如下所示:
navGrid
在此示例中,仅当选择了行时才允许单击“添加”按钮。您将看到一个消息框,其中包含“请,选择行”(在 grid.locale-en.js 或您使用的其他本地化文件中定义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();
}
}});
的文本) 。您可以将此代码片段放在主网格中。
在拒绝“添加”操作的情况下的代码可以更容易,我只是在这里复制了一个使用jqGrid本身的代码片段。您可以改为显示自定义错误消息。
答案 1 :(得分:0)
很酷,请Oleg !!! 顺便说一下,我带来了另一个(但不是很美)的解决方案:
**这是一个aftershowform动作。 如果我们在主网格上没有选定的行(#gridap),我们用jqmHide()隐藏表单模态。 然后,我使用您的解决方案来显示警报。
$closeform = <<< CLOSEF
function(formid)
{
if(!jQuery('#gridap').getGridParam('selrow'))
{
$('#editmodgridbal').jqmHide();
viewModal('#alertmod', { gbox: '#gbox_', jqm: true });
}
}
CLOSEF;
$grid->setNavEvent('add','afterShowForm',$closeform);