Lib.Web.Mvc.JQuery.JqGrid - разрешить редактирование столбца ТОЛЬКО при добавлении, но не при "редактировании"

У меня есть столбец, который является одновременно бизнес-ключом и первичным ключом для конкретной сущности в существующей, плохо спроектированной схеме. Невозможно вносить изменения в эту клавишу, поскольку они не будут каскадироваться как есть.

Поэтому мне нужно сделать колонку редактируемой только при создании, но не при редактировании. Я не смог найти ничего в документации для jqGrid или же Lib.Web.Mvc.JQuery.JqGrid это говорит о том, что это встроенная функция, но если это так, я бы хотел узнать об этом.

Если нет, то каков будет лучший способ для достижения этой функциональности? Должен ли я сделать столбец редактируемым, но добавить собственный (на стороне клиента) форматер? Есть ли другой способ?

Примечание: это не дубликат jqGrid, нужно поле, редактируемое в диалоговом окне "Добавить", но не в диалоговом окне "Редактировать", поскольку оно относится конкретно к Lib.Web.Mvc.JQuery.JqGrid и не библиотека JavaScript в целом.

Вся помощь приветствуется.

1 ответ

Решение

Вот как я делаю это сейчас. Мне это кажется "неправильным" и уродливым, но это работает.

    function fnSetAccessGroupCodeReadOnly() {
        $("#AccessGroupCode").attr("readonly", "readonly");
    }

    function fnUnSetAccessGroupCodeReadOnly() {
        $("#AccessGroupCode").removeAttr("readonly");
    }

и в помощнике, в навигаторе действий для редактирования:

    new JqGridNavigatorEditActionOptions()
    {
        // Edit Options

        Url = Url.Action("EditPartnerAccessGroup"),
        MethodType = JqGridMethodTypes.Post,
        AfterShowForm = "fnSetAccessGroupCodeReadOnly",
        CloseAfterEdit = true
    },
Другие вопросы по тегам