阻止在添加按钮单击上打开表单

时间:2010-05-15 21:17:38

标签: jquery jqgrid jqgrid-php

当我点击添加按钮时,您是否知道如何阻止打开表单?

也许使用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!

2 个答案:

答案 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);