2013-06-30 39 views
0

我正在處理第一個Slickgrid MVC應用程序,其中列定義和格式將存儲在數據庫中。我可以非常愉快地檢索列的列表並填充它們,直到遇到日期格式化問題。沒問題 - 對於每個日期(或時間)列,我可以在數據庫中存儲一個格式化程序名稱,這樣也可以檢索它。我使用下面的代碼,它工作正常:如何在MVC中使用Slickgrid格式器

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

您正在給格式化程序屬性分配一個字符串,這個字符串有望成爲函數。

嘗試:

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

但我真的認爲你應該重新考慮做這種方式,而是存儲在數據庫中的值,並通過代碼定義的列。

維護起來更容易,不易出錯。

如果您決定使用後來重命名的自定義編輯器和格式化程序,該怎麼辦? 然後你的代碼將會中斷,否則你將不得不重新命名數據庫以及代碼中的所有條目。