我为Jquery DataTable创建了Asp.Mvc帮助方法。在此,我需要允许开发人员使用mvc @helper方法(如bellow。)自定义网格列。
@Html.Grid<ModelClass>()
.GridColumns(a=>{
a.column.Bound(a=>a.ID)
.ServerSideTemplate(t => DisplayTemplae(d));
})
@helper DisplayTemplae(ModelClass data)
{
<b>data.Name</b>
}
目前我实施的是 ServerSideTemplate 功能,如bellow
public static IDTOptionsSer<T> ServerSideTemplate<T>(this IDTOptionsSer<T> table, Func<T, IHtmlString> constraint)
{
Func<T, string> valueContraint = a => constraint(a).ToHtmlString();
table.RowTemplate(valueContraint);
return table;
}
方法 table.RowTemplate(valueContraint)将valueContraint保存在dtTableColumn属性calss 属性ColunServerSideTemplate。
然后我从服务器端处理数据表数据,如下面的
foreach(item in _source.DtTableData){
_source.column(a=>{
a.column.ColunServerSideTemplate(item);
});
}
它适用于大约1000条记录。但如果我的记录更多,那么我的记忆就会超出限制范围。
请帮助我如何有效地处理这个问题。