剣道グリッドのパフォーマンスが低下しています。1000を超えるレコードをロードしようとすると、グリッドが読み込まれるまでに約8秒かかります。私はコントローラーが3秒でjsonデータを返すのを見ることができます。そして、剣道のグリッドには時間がかかります。剣道グリッド:遅いパフォーマンスの問題
私は500のレコードのPageSizeを持ち、DataSourceRequestを使用していたので、各ページのデータはコントローラからのみ返されます。しかし、まだ喜びはありません。
グリッドのパフォーマンスを向上させる方法はありますか?
グリッド上のUIの仮想化を有効に
@(Html.Kendo().Grid<Model>()
.Name("KendoTestGrid")
.Columns(columns =>
{
columns.Bound(p => p.Column5)
.Width("18%")
.ClientTemplate("#= formatResult(format(column5, '')) #")
.EditorTemplateName("Column5")
.ClientFooterTemplate("<span href='\\#' id='total'>Total : </span>");
columns.Bound(p => p.Column6)
.EditorTemplateName("Column6")
.ClientTemplate("#= format(column6, '') #")
.ClientFooterTemplate("<span href='\\#' id='spanfooter'></span>")
.Width("23%");
columns.Bound(p => p.column7)
.ClientTemplate("<span href='\\#' id='#=Id #'>#= format(Column7,'')#</span>")
.ClientFooterTemplate("<span href='\\#' id='spansum'></span>")
.HtmlAttributes(new { Class = "number" })
.Width("18%");
columns.Bound(p => p.column8)
.EditorTemplateName("column8")
.ClientFooterTemplate("Total:")
.ClientFooterTemplate("<span href='\\#' id='TotalSum1'></span>")
.Width("23%");
})
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(true)
.Read(read => read.Action("Action", "Controller").Data("getData"))
.Create(c => c.Action("Action", "Controller").Data("getData2"))
.Update(update => update.Action("Action", "Controller").Data("getData3"))
.PageSize(500) .Events(x => x.DataBound("ongriddatabound")
.Edit("ongridedit")
.Change("ongridchange"))
.Editable(editing => editing.Mode(Kendo.Mvc.UI.GridEditMode.InCell))
.Filterable()
.Groupable()
.Sortable()
.Scrollable()
.Pageable()
.Selectable(s => s.Mode(GridSelectionMode.Single).Type(GridSelectionType.Row))
.Resizable(resize => resize.Columns(true))
.AutoBind(false)
)
をオフにします。私は1200の要素とページサイズが500のグリッドを作成しました。ブラウザ/ラップトップでは何も取りません。ここで試すことができますhttp://jsfiddle.net/OnaBai/27g3s/。複雑なテンプレートなどを使っていますか? – OnaBai
グリッドの作成に使用したコードと、使用したカスタムの行テンプレートまたは編集テンプレートを含めてください。 – CodingWithSpike
私は自分の列にClienttemplateとEditortemplateを使用しています。 EditorTemplateは2つの列に数字のテキストボックスを持っています。 – user1870358