読み取り(リフレッシュ)後、私の剣道グリッドからレコード数をプッシュできるようにします。ここで剣道グリッドのレコード数をdataSource.readの後に取得
は私の剣道グリッドです:
@(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);
}
ここでは、jQuery関数にTODOを設定します。行数を取得し、その数値をページの特定のelemntにプッシュできるようにしたいと考えています。
@Quinton Bernhardtにお返事ありがとうございます。 fetch()関数は私を逃していましたが、あなたが私に送るリファレンスがそのトリックでした。もう一度Thanx: – gardarvalur
var searchWindowSource = $( "#SearchWindowGrid")。data( "kendoGrid")。dataSource; searchWindowSource.fetch(function(){ var total = searchWindowSource.total(); }); – gardarvalur
'total()'はフィルタでも機能します。グリッド 'dataSource'に' filter'が適用されている場合は、フィルタリングされたレコードの数も返します。 – Paritosh