В настоящее время я занимаюсь разработкой веб-приложения, предназначенного для администрирования торговых автоматов и тому подобного.
Я решил использовать jQuery, jQuery UI и jqGrid для этого проекта, поэтому я могу легко предоставить отличный и настраиваемый пользовательский интерфейс.
К сожалению, документация jqGrid довольно устарела и не охватывает все функции этого замечательного плагина (потому что он мне действительно нравится, хотя документация довольно скудная).
В любом случае, достаточно справочной информации, я полагаю. Давайте перейдем к сути:
Я использую панель навигации, встроенную в jqGrid, чтобы добавлять, редактировать и удалять элементы из сетки.
У меня это работает как шарм, за исключением одного: некоторые поля могут быть включены (или видимы) только при добавлении нового элемента, а не в режиме редактирования (они должны быть скрыты и / или отключены).
Пример:
Компания, в которой я работаю, продает торговые башни и Есть несколько типов (разные размеры и прочее) этих башен. когда новая башня добавляется к локации и введен в систему, тип должен быть установлен. Но башня не волшебным образом меняется со временем, так что это поле не может быть отредактировано позже.
Кто-нибудь знает, может ли это поведение быть достигнуто путем изменения некоторых параметров инициализации?
Возможно, это недокументированная опция редактирования ( editoptions ) или опция формы ( formoptions )?
Или, может быть, у вас есть простое решение для этого?
Я хотел бы услышать ваше предложение / решения!
Спасибо =)
Вы можете реализовать свои требования по-разному. Например, внутри события beforeShowForm
вы можете скрыть или показать
jQuery("#list").jqGrid({
colModel: [
{ name: 'Name', width: 200, editable: true },
//...
}).jqGrid('navGrid','#pager', { edit: true, add: true, del: false},
{ // edit option
beforeShowForm: function(form) { $('#tr_Name', form).hide(); }
},
{ // add option
beforeShowForm: function(form) { $('#tr_Name', form).show(); }
});
, где идентификатор «tr_Name» состоит из префикса «tr_», а «Name» - свойства имени столбца из colModel
.
ОБНОВЛЕНО : в ответ и в еще один показан еще один способ динамического изменения свойств непосредственно перед инициализацией редактирования.
ОБНОВЛЕНО 2 : Free jqGrid позволяет определить редактируемый
как функцию обратного вызова или как «отключено»
, «скрыто»
или «только чтение»
. См. статью в вики . Это позволяет легче реализовать те же требования.