Как использовать 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"];
Но я действительно думаю, что вам следует пересмотреть это, и вместо этого сохранить ваши значения в БД и определить столбцы с помощью кода.
Это будет проще в обслуживании и менее подвержено ошибкам.
Что если вы решите использовать пользовательские редакторы и форматеры, которые впоследствии переименуете? Тогда ваш код сломается, или вам придется переименовать все записи в БД, а также в коде.