Как иметь различные опции редактирования для, добавляют и редактируют формы в jqGrid

У меня есть jqGrid с, говорят, что информация о пользователе, которая должна быть отредактирована в форме. Имя пользователя неизменно, но должно появиться в форме, таким образом, пользователь знает, какого пользователя они редактируют. Пароль является редактированием только. Таким образом в моем colModel у меня есть настройки как это:

{name:'username', index:'username', width:155, editable:true, editoptions: {readonly:'readonly'}}, 
{name:'password', index:'password', width:155, hidden:true, editable: true, edittype:'password', editrules:{edithidden:true}}, 

Это хорошо работает для редактирования. Моя проблема идет, добавляют, что я должен сделать имя пользователя 'не только для чтения'. Я не вижу свойств для управления добавить формой по сравнению с формой редактирования. Возможно, я могу использовать afterShowForm событие для изменения editoptions? Кто-либо сделал что-нибудь как это?

5
задан Donald Byrd 1 January 2010 в 04:32
поделиться

1 ответ

В случае, если это будет полезно кому-то еще, я не смог сделать это точно, но нашел способ достичь конечного результата.

Таким образом, вместо того, чтобы использовать editoptions для установки поля формы только для чтения, я использовал событие передShowForm опций add & edit для добавления и удаления атрибута readonly.

Таким образом, колмодель без readonly:

{name:'username', index:'username', width:155, editable:true}, 
{name:'password', index:'password', width:155, hidden:true, editable: true, edittype:'password', editrules:{edithidden:true}}, 

и NavGrid edit & add options to turn the readonly on (for add) or off (for edit). Обратите внимание, что идентификатором INPUT-тега будет значение поля name в colModel:

jQuery("#user-grid").jqGrid('navGrid','#user-grid-pager',
    { }, //options
    { // edit options
        beforeShowForm: function(frm) { 
            $('#username').attr('readonly','readonly'); 
        }
    }, 
    { // add options
        beforeShowForm: function(frm) { 
            $('#username').removeAttr('readonly'); 
        }
    }, 
    { }, // del options
    { } // search options
);

На заметке, хотя я знаю (согласно jquery dump), что функция 'frm' arg является объектом jQuery, содержащим форму, я не смог получить селектор для успешного выбора нужного мне ребенка, поэтому я просто использовал идентификатор, который совпадает с именем colModel.

8
ответ дан 14 December 2019 в 01:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: