Как использовать Slickgrid Formatters с MVC

Я работаю над первым приложением Slickgrid MVC, где определение и формат столбца должны храниться в базе данных. Я могу довольно счастливо получить список столбцов и заполнить их, пока не столкнулся с проблемой форматирования дат. Нет проблем - для каждого столбца даты (или времени) я могу сохранить имя форматера в базе данных, чтобы его также можно было найти. Я использую следующий код, который работает нормально:

CLOP_ViewColumnsDataContext columnDB = new CLOP_ViewColumnsDataContext();
var results = from u in columnDB.CLOP_VIEW_COLUMNs
              select u;

List<dynColumns> newColumns = new List<dynColumns>();

foreach(CLOP_VIEW_COLUMN column in results)
{

    newColumns.Add(new dynColumns
    {
        id = column.COLUMN_NUMBER.ToString(),
        name = column.HEADING.Trim(),
        field = column.VIEW_FIELD.Trim(),
        width = column.WIDTH,
        formatter = column.FORMATTER.Trim()

    }); 
}

var gridColumns = new JavaScriptSerializer().Serialize(newColumns);

Это все хорошо, кроме fomatter. Примером переменной gridColumns является:

    [{"id":"1","name":"Date","field":"SCHEDULED_DATE","width":100,"formatter":"Slick.Formatters.Date"},{"id":"2","name":"Carrier","field":"CARRIER","width":50,"formatter":null}]

Что выглядит не так уж плохо, однако приложение терпит неудачу с ошибкой Microsoft JScript: ошибка выполнения: функция ожидается в сценарии slick.grid.js

Любая помощь высоко ценится - даже если есть лучший способ сделать это!

1 ответ

Вы присваиваете строку свойству formatter, которая, как ожидается, будет функцией.

Пытаться:

window["Slick"]["Formatters"]["Date"];

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

Это будет проще в обслуживании и менее подвержено ошибкам.

Что если вы решите использовать пользовательские редакторы и форматеры, которые впоследствии переименуете? Тогда ваш код сломается, или вам придется переименовать все записи в БД, а также в коде.

Другие вопросы по тегам