我正在开发第一个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脚本中预期的函数
任何帮助都非常感激 - 即使有更好的方法可以做到这一点!
答案 0 :(得分:0)
您正在为formatter属性分配一个字符串,预计它将是函数。
尝试:
window["Slick"]["Formatters"]["Date"];
但我真的认为你应该重新考虑这样做,而是将你的值存储在数据库中,并通过代码定义你的列。
维护起来会更容易,并且不易出错。
如果您决定使用自定义编辑器和格式化程序,稍后重命名该怎么办? 然后您的代码将中断,或者您将不得不重命名数据库中的所有条目以及代码。