我需要显示的数据表,可以在视图中返回一个可变的列数,所以我结合的MVC 3的WebGrid到列表<动态>,如答案描述此信息: 从数据表中填充MVC的WebGrid
它工作正常,但慢得令人难以置信! 所谓“慢得令人难以置信”我的意思是需要13秒11列,以显示一组的15条记录。 有什么办法来加快这个吗? 我试图消除寻呼机但没有任何效果。
其从Ado.Net数据表中创建的列表<动态>的代码看起来是这样。 它在这里的运行速度很快,没问题。
var MyList = new List<dynamic>();
foreach (DataRow row in MyTable.Rows)
{
var expando = (IDictionary<string, object>)new ExpandoObject();
foreach (string column in columnNames)
{
expando.Add(column, row[column]);
}
MyList.Add(expando);
}
在视图中,会出现问题。 下面的代码需要大约13秒渲染一组的15条记录与11列! 到数据库和数据表的一个列表<动态>转换行程需要不到一秒钟。 下面的代码需要13秒,只是渲染。 我究竟做错了什么? 还是我吠叫使用一个List <动态>错了?
var grid = new WebGrid(canPage: true, rowsPerPage: Model.PageSize, canSort: false);
grid.Bind(Model.MyList, rowCount: (int)Model.RowCount, autoSortAndPage: false);
grid.Pager(WebGridPagerModes.All);
@grid.GetHtml(tableStyle: "webgrid",
rowStyle: "webgrid-row",
alternatingRowStyle: "webgrid-alternating-row",
htmlAttributes: new { id = "tblSearchResults" },
firstText: "<<First",
lastText: "Last>>", mode: WebGridPagerModes.All
)