【发布时间】:2015-06-10 18:27:37
【问题描述】:
我有一个window,它使用客户端绑定通过AJAX 调用控制器来呈现5 个Telerik grids。鉴于数据不足以用于分页解决方案,我想减少几个网格的加载时间,最大可达 2.5 秒。
以下是使用客户端绑定的网格之一的示例代码:
<h4> EMP List</h4>
@{
Html.Telerik().Grid(Model.EMPList)
.Name("gvEMPList")
.DataKeys(keys =>
{
keys.Add(t => t.empID);
})
.Columns(columns =>
{
columns.Bound(s => s.EMPName).Title("NAME").ReadOnly().Width(150);
columns.Bound(s => s.EMPType).Title("Type")
.ClientTemplate("<# if(EMPTypeIDOld==EMPTypeID)) { #> <#= EMPType #> <#} else { #> <span style='color:#929292'> [<#=EMPTypeOld #>] </span> <# } #>")
.ReadOnly().Width(350);
if (ViewBag.EMP_Edit)
{
columns.Bound(s => s.empID).Title("Action").Width(230)
.ClientTemplate("<# if(empID <= 0) { #> <input type='button' class='t-button' value='Reject Salaray' onclick=\"gvSalaryRequest('<#= empID#>')\"/> <# } #>").ReadOnly();
}
})
.DataBinding(dataBinding => dataBinding.Ajax()
.Select("_SelectEMPToRequest", "Employee", new { DeptID = ViewBag.DeptID})
)
.Sortable()
//.Scrollable(s => s.Height("auto"))
.Resizable(r => r.Columns(true))
.Reorderable(reorder => reorder.Columns(true))
.ColumnContextMenu()
.Render();
}
主要问题是页面中的 AJAX 调用与网格一样多。
问题:
- 我是否应该考虑为此绑定
Server-Side? - 如果是,如何实现与上述相同的功能? (例如。 clientTemplate、HTMLembedding、自定义命令)。
- 还有其他解决方案需要考虑吗?
【问题讨论】:
-
您的 ajax 调用使用相同还是不同的数据?如果数据不同,我会考虑使用 ajax 调用,因为它具有并行性和早期页面加载。
标签: c# telerik kendo-grid telerik-grid kendo-asp.net-mvc