0

我正在开发第一个 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);

除了格式器之外,这一切都很好。变量 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 runtime error: Function expected in the slick.grid.js script

任何帮助都非常感谢 - 即使有更好的方法!

4

1 回答 1

0

您正在为 formatter 属性分配一个字符串,它应该是函数。

尝试:

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

但我真的认为你应该重新考虑这样做,而是将你的值存储在数据库中并通过代码定义你的列。

它将更易于维护并且不易出错。

如果您决定使用稍后重命名的自定义编辑器和格式化程序怎么办?然后您的代码将中断,或者您必须重命名数据库和代码中的所有条目。

于 2013-07-02T22:10:56.370 回答