【问题标题】:Preventing the opening of a form on a add button click防止在单击添加按钮时打开表单
【发布时间】:2011-02-19 23:19:17
【问题描述】:

你们知道当我点击添加按钮时如何防止打开表单吗?

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

【问题讨论】:

    标签: jquery jqgrid jqgrid-php


    【解决方案1】:

    我不明白您为什么不直接从导航栏中删除“添加”按钮。要创建导航栏,请显式调用 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/ 上找到图标的名称。自定义按钮可以具有与“添加”按钮相同的图标。能解决你的问题吗?

    更新:现在,在您发表评论后,我了解您的问题。我可以建议使用navGridaddfunc 选项(参见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本身的代码片段。您可以改为显示自定义错误消息。

    【讨论】:

    • 您好 Oleg,首先,我有 2 个网格,一个主网格和一个从属网格,当我在主网格上连续单击时,有关它的信息会显示在从网格上。当我点击添加按钮时,我想检查主网格是否有选定的行,在从导航中,我有一个添加、编辑和刷新按钮,我想阻止打开“添加表单”和如果主网格上没有选择行,则显示自定义消息。谢谢奥列格! ;-)
    • 嘿,我创建了自定义导航按钮来对点击的行执行操作。如果单击我的导航按钮而不单击行,我需要同样的警报。在我想添加此代码的地方执行此操作?在onClickButton:function() ?
    • 我是从你的另一个答案stackoverflow.com/a/17295728/2567813..非常感谢...
    【解决方案2】:

    酷,谢谢奥列格!!! 顺便说一句,我带来了另一个(但不是很漂亮)的解决方案:

    ** 这是表演后的动作。 如果我们在主网格 (#gridap) 上没有选定的行,我们使用 jqmHide() 隐藏表单模式。 然后,我使用您的解决方案来显示 alertcap。

    
    $closeform = <<< CLOSEF
    function(formid)
    {
        if(!jQuery('#gridap').getGridParam('selrow'))
        {
            $('#editmodgridbal').jqmHide();
            viewModal('#alertmod', { gbox: '#gbox_', jqm: true });
        }
    }
    CLOSEF;
    
    

    $grid->setNavEvent('add','afterShowForm',$closeform);

    【讨论】:

      猜你喜欢
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-30
      • 2019-03-07
      相关资源
      最近更新 更多