Я не понимаю, почему вы просто не убираете кнопку «Добавить» с панели навигации. Чтобы создать панель навигации, вы явно вызываете метод navGrid
jqGrid.
jQuery("#grid_id").navGrid('#gridpager');
or
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();
}
}});
В этом примере будет разрешено нажать кнопку «Добавить», только если выбрана строка. Вы увидите окно сообщения с текстом типа «Пожалуйста, выберите строку» (текст, который определяет $.jgrid.nav.alerttext
внутри grid.locale-en.js или другого файла локализации, который вы используете). Вы можете поместить этот фрагмент кода в свою мастер-сетку.
Код на случай отказа от операции "Добавить" может быть проще, я просто скопировал здесь фрагмент кода, использующий сам jqGrid. Вместо этого вы можете отобразить собственное сообщение об ошибке.
person
Oleg
schedule
15.05.2010