LibAWeb.Mvc, атрибуты CellAttributes класса JqGridColumnModel не работают
Я использую Lib.Web.Mvc (версия 6.1.0) для генерации jqgrid в клиенте.
Большинство атрибутов JqGridColumnModel работают нормально, но CellAttributes не оказывает здесь никакого влияния.
Это мой код:
configuration.Settings.ColumnsModels.AddRange(new JqGridColumnModel[]
{
new JqGridColumnModel("ProductID") { Index = "ProductID" },
new JqGridColumnModel("ProductName") { Index = "ProductName" },
new JqGridColumnModel("SupplierID") { Index = "SupplierID" },
new JqGridColumnModel("CategoryID") { Index = "CategoryID" },
new JqGridColumnModel("QuantityPerUnit") { Index = "QuantityPerUnit"},
new JqGridColumnModel ("UnitPrice") {Index = "UnitPrice", CellAttributes* = "value = 1"}});
Я не знаю, если CellAttributes все еще не работает в последней версии 6.1.0? Или я не знаю, как его использовать.
Пожалуйста, дайте мне идею добавить больше атрибутов в ячейку со стороны сервера (контроллер).
1 ответ
JqGridColumnModel.CellAttributes
является доверенным лицом cellattr
собственностью colModel
, Это свойство принимает функцию JavaScript, которая должна возвращать строку с атрибутами. Ниже вы можете найти соответствующую часть из документации jqGrid:
Эта функция добавляет атрибуты в ячейку во время создания данных - т.е. динамически. В качестве примера можно использовать все допустимые атрибуты для ячейки таблицы или атрибут стиля с различными свойствами. Функция должна вернуть строку....
А из документации Lib.Web.Mvc:
Получает или задает функцию, которая может добавлять атрибуты в ячейку во время создания данных (динамически).
Так что в вашем случае код должен выглядеть так:
configuration.Settings.ColumnsModels.AddRange(new JqGridColumnModel[]
{
new JqGridColumnModel("ProductID") { Index = "ProductID" },
new JqGridColumnModel("ProductName") { Index = "ProductName" },
new JqGridColumnModel("SupplierID") { Index = "SupplierID" },
new JqGridColumnModel("CategoryID") { Index = "CategoryID" },
new JqGridColumnModel("QuantityPerUnit") { Index = "QuantityPerUnit" },
new JqGridColumnModel("UnitPrice") { Index = "UnitPrice", CellAttributes = "function() { return 'value=1'; }" }
});
ОБНОВИТЬ
Существует один особый случай, функциональность импорта и экспорта конфигурации. В этом случае все параметры функций JavaScript, событий и обратных вызовов игнорируются, так как они не могут быть сериализованы в JSON (это сделано специально).