将客户端绑定转换为服务器端以提高性能

时间:2015-06-10 18:27:37

标签: c# telerik kendo-grid telerik-grid kendo-asp.net-mvc

我有window使用客户端绑定通过Telerik grids调用控制器呈现5 AJAX。鉴于数据对于寻呼解决方案来说还不够,我想减少几个网格的加载时间,最多可达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,自定义命令)。
  • 还有其他解决方案需要考虑吗?

1 个答案:

答案 0 :(得分:0)

我不确定您的观点或要求。但我有类似的问题,我用tab来克服这个问题。用户不会同时看到所有网格。所以我在tab激活上获取数据。

如果你不能使用tab,那么服务器端网格是正确的方法。