我不明白你为什么不只是从导航栏中删除“添加”按钮。要创建导航栏,您显式调用navGrid
jqGrid 的方法
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
选项navGrid
(见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();
}
}});
In this example will be allowed to click "Add" button only if a row is selected. 您将看到一个带有文本的消息框,例如“请选择行”(在 grid.locale-en.js 或您使用的其他本地化文件中定义的$.jgrid.nav.alerttext
文本)。您可以将此代码片段放在主网格中。
拒绝“添加”操作的代码可以更简单,我只是在这里复制了一个使用jqGrid本身的代码片段。您可以改为显示自定义错误消息。