我希望能夠在讀取(刷新)後從我的Kendo網格中推入記錄數。dataSource.read之後在Kendo Grid中獲取記錄數
這裏是我的劍道網:
@(Html.Kendo().Grid(Model)
.Name("SearchWindowGrid")
.Columns(columns =>
{
columns.Bound(p => p.SYSTEM_ITEMS_SEGMENT1).Hidden();
})
.ClientRowTemplate(
"<tr>" +
"<td>" +
"<span><b>#: SYSTEM_ITEMS_SEGMENT1#</b></span> <br/>" +
"<span>#: DESCRIPTION# </span>" +
"</td>" +
"</tr>"
)
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("PopulateSearchWindow", "Item").Data("additionalSearchWindowInfo"))
.Events(ev => ev.Error("onErrorSearchWindow"))
)
.Selectable(s => s.Enabled(true).Mode(GridSelectionMode.Single).Type(GridSelectionType.Row))
.Scrollable(s => s.Enabled(true).Height(450))
)
我的控制器動作:
public ActionResult PopulateSearchWindow([DataSourceRequest] DataSourceRequest request, string option, string searchText, string searchDesc)
{
try
{
var derps= _idg.SearchItems(searchText, searchDesc, _adg.OrganizationCode).ToList();
return Json(derps.ToDataSourceResult(request, ModelState));
}
catch (Exception e)
{
ModelState.AddModelError("ExceptionErrors", e.Message);
return Json(new List<Derp>().ToDataSourceResult(request, ModelState));
}
}
這裏是我的功能,迫使數據刷新:
function refreshData(){
$("#SearchWindowGrid").data("kendoGrid").dataSource.read();
//TODO: get the total count and push to #countElement
var count = $("#SearchWindowGrid").data("kendoGrid").length; //not sure what to do here
$("#countElement").val(count);
}
我將TODO放在jQuery函數中的位置我希望能夠獲取行數並將該數字推送到頁面上的特定元素。
謝謝你的回答@Quinton Bernhardt。 fetch()函數正在逃避我,但是您發送給我的引用完成了這個任務。 Thanx again :) – gardarvalur
var searchWindowSource = $(「#SearchWindowGrid」)。data(「kendoGrid」)。dataSource; searchWindowSource.fetch(function(){ var total = searchWindowSource.total(); }); – gardarvalur
'total()'即使使用過濾器也能工作。如果'filter'應用於grid'dataSource',那麼它也會給我們計算已過濾的記錄。 – Paritosh