我有一个带有 clientrow 模板的 Kendo UI 网格,如下所示:
@(Html.Kendo().Grid(Model.UnitDetails)
.Name("grid")
.DataSource(ds => ds
.Ajax()
.Read(read => read.Action("Get", "Home"))
.AutoSync(true)
.PageSize(5)
.ServerOperation(false)
)
.RowAction(row =>
{
if (row.DataItem.ViewUnitContract.Disabled)
{
row.HtmlAttributes["style"] = "color: gray";
}
})
.Columns(columns =>
{
columns.Template(p => { }).ClientTemplate(" ").Title("Well Site");
columns.Bound(p => p.ViewUnitContract.Name).Title("Unit Name").Width(200);
columns.Template(p => { }).ClientTemplate(" ").Title("Well");
columns.Template(p => { }).ClientTemplate(" ").Title("Run").Width(75);
columns.Template(p => { }).ClientTemplate(" ").Title("Task").Width(250);
columns.Template(p => { }).ClientTemplate(" ").Title("Activity").Width(150); ;
columns.Template(p => { }).ClientTemplate(" ").Width(60).Title("Status");
columns.Template(p => { }).ClientTemplate(" ").Title("Depth (m)").Width(75);
columns.Template(p => { }).ClientTemplate(" ").Title("Speed (m/min)").Width(75);
columns.Template(p => { }).ClientTemplate(" ").Width(250).Title("Weight (kg)");
})
.ClientRowTemplate(Html.Partial("_ClientRowTemplate", Model).ToHtmlString())
.Sortable())
还有一个控制器,如下所示:
using Kendo.Mvc.Extensions;
using Kendo.Mvc.UI;
using SomeName.Xplorer.Library.Controllers;
using SomeName.Xplorer.Services.Models;
using System.Linq;
using System.Web.Mvc;
using UnitContract = SomeName.Xplorer.Services.UnitService.UnitContract;
public class HomeController : BaseController
{
private HomeViewModel Model { get; set; }
[Authorize]
public ActionResult Index()
{
UnitContract[] listOfUnitsFromService = UnitClient.GetListOfUnits(true, "");
Model = new HomeViewModel
{
UnitDetails = GenerateUnitDetails(listOfUnitsFromService.ToList()),
};
return View(Model);
}
public ActionResult Get([DataSourceRequest] DataSourceRequest request)
{
UnitContract[] listOfUnitsFromService = UnitClient.GetListOfUnits(true, "");
Model = new HomeViewModel
{
UnitDetails = GenerateUnitDetails(listOfUnitsFromService.ToList()),
};
return Json(Model.UnitDetails.ToDataSourceResult(request));
}
}
最后,我的脚本:
<script src="@Url.Content("~/Scripts/kendo/2013.2.716/jquery.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/kendo/2013.2.716/kendo.all.min.js")"></script>
<script src="@Url.Content("~/Scripts/kendo/2013.2.716/kendo.aspnetmvc.min.js")"></script>
我的问题是,为什么网格实际上不使用“获取”操作?每当我调试时,它都会触发“索引”操作,仅此而已。我在这里错过了什么吗?:)