Javascript 剑道Ui ASP网格渲染速度慢

Javascript 剑道Ui ASP网格渲染速度慢,javascript,asp.net,kendo-ui,kendo-grid,kendo-asp.net-mvc,Javascript,Asp.net,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我有一个剑道Ui网格,有三列,第一列是复选框,另两列包含文本。我遇到的问题是该复选框渲染速度变慢。在网格渲染和数据填充速度非常快的情况下,我必须等待几秒钟,等待复选框渲染。在我等待的时候,我可以看到在复选框呈现之前,列中有数字。我在考虑转换它,以便使用javascript代码创建它,看看它是否会更快。有没有人看到我的代码会导致渲染速度变慢,或者性能提高,或者用javascript执行会快得多 <td id="typeGrid"> @(Html.Kendo().Grid(Model.

我有一个剑道Ui网格,有三列,第一列是复选框,另两列包含文本。我遇到的问题是该复选框渲染速度变慢。在网格渲染和数据填充速度非常快的情况下,我必须等待几秒钟,等待复选框渲染。在我等待的时候,我可以看到在复选框呈现之前,列中有数字。我在考虑转换它,以便使用javascript代码创建它,看看它是否会更快。有没有人看到我的代码会导致渲染速度变慢,或者性能提高,或者用javascript执行会快得多

<td id="typeGrid">
 @(Html.Kendo().Grid(Model.TypeList)
 .Name("TypeList")
 .Columns(columns =>
 {
   columns.Bound("myID").Sortable(false).Width("35px")
     .ClientTemplate("<input type='checkbox'  name='typeId' value=#=myID#>")
     .Title("<input type='checkbox' onclick='checkAll(event)'>");
   columns.Bound("Name").Title("Name");
   columns.Bound("Type").Title("Type");
   })             
 .Sortable()                                                            
 .Resizable(resize => resize.Columns(true))
 .Selectable(select => select.Mode(GridSelectionMode.Multiple))
 .DataSource(dataSource => dataSource
      .Ajax()
      .ServerOperation(false)
      )
  )
 </td>
编辑

仔细检查后,我注意到模板中的输入复选框在我的下拉框呈现之前不会呈现。下拉框渲染是否会缓慢导致模板在下拉框渲染之前不应用?它们都使用相同的对象

<td id="PermType" style="vertical-align: top;">
  @(Html.Kendo().DropDownList()
    .Name("theTypeList") 
    .DataTextField("Type Name") 
    .DataValueField("myTypeID")    
    .BindTo(Model.myTypeList)                                 )
</td>

// the code above for the grid goes after this
我的模型

 public class myModel
{      
    public List<subType> TypeList { get; set; }
    public List<mainType> myTypeList { get; set; }

    public class subType
    {
        public int myID { get; set; }
        public string Name { get; set; }          
        public string Type { get; set; }
         public int mainTypeID { get; set; }

    }

    public class mainType
    {           
        public string myTypeID { get; set; }  
        //other property

    }

}
在您的数据源中,您正在为该方法设置Ajax,但您正在向网格传递一个对象。我想这可能会引起一个问题

根据评论编辑

尝试将您的数据源更改为此,我认为语法可能有点不正确,但intellisense应该能够提供帮助:

@(Html.Kendo().Grid(Model.TypeList)
 .Name("TypeList")
 .Columns(columns =>
 {
   columns.Bound(x => x.myID).Sortable(false).Width("35px")
     .ClientTemplate("<input type='checkbox'  name='typeId' value='#=myID#'>")
     .Title("<input type='checkbox' onclick='checkAll(event)'>");
   columns.Bound(x => x.Name).Title("Name");
   columns.Bound(x => x.Type).Title("Type");
   })             
 .Sortable()                                                            
 .Resizable(resize => resize.Columns(true))
 .Selectable(select => select.Mode(GridSelectionMode.Multiple))
 .DataSource(dataSource => dataSource
      .Model(mdl => mdl.Id(x => x.myID))
  )

我怀疑这是因为我从未使用过可选择的属性。

我尝试将其更改为服务器,并尝试完全删除数据源,但得到的错误是没有指定数据源模型Id属性。很抱歉,我需要澄清,错误所指的模型Id不是我模型中的Id,我的模型中的Id称为其他Id,出于安全原因,我只是在这里更改了它。我修改了代码以更好地反映这一点。没有可用于数据源的模型。我也没有工作。但是请看我的编辑,我发现一些可能有用的东西。你能发布你的模型是什么样子吗?我更新了我的代码来更改绑定。当你说它不工作时,你的意思是它抛出一个错误还是加载仍然很慢?对于删除,它仍然很慢。