c# – MVC 4 – Kendo Grid数据绑定
以下是我项目的所有内容:
ControllerA public ActionResult Index() { return View(); } public ActionResult User_Read() { ViewModels.ViewModelA objView = new ViewModels.ViewModelA(); objView.MyList = new List<ViewModels.SomeClass>(); objView.MyList.Add(new ViewModels.SomeClass() { FirstName = "FN1",Supervisor = "SV1" }); objView.MyList.Add(new ViewModels.SomeClass() { FirstName = "FN2",Supervisor = "SV2" }); return Json(objView,JsonRequestBehavior.AllowGet); } ViewModelA public class ViewModelA { public List<SomeClass> MyList { get; set; } } public class SomeClass { public string FirstName { get; set; } public string Supervisor { get; set; } } Index.cshtml @using Kendo.Mvc.UI @(Html.Kendo().Grid<Solution1.ViewModels.ViewModelA>() .Name("grid") .Columns(columns => { columns.Bound(c => c.FirstName); columns.Bound(c => c.Supervisor); }) .HtmlAttributes(new { style = "height: 380px" }) .DataSource(dataSource => dataSource .Ajax() .Read(read => read.Action("User_Read","ControllerA")) ) ) 详细信息:当我运行此页面时,页面加载正常且没有错误,但是,页面上没有填充任何数据.因此,网格存在,但它只显示FirstName和Supervisor的列名.我知道你不应该对数据进行硬编码,但我现在只想在网格上显示一些内容,我希望数据来自Controller. 问题:为了在网格上显示数据,我需要更改什么?此外,根据Controller中的数据,如何向网格添加多行? 更新:我最初提出的问题已部分解决.仍需要帮助才能将数据显示到网格中. 解决方法
要使代码工作,您需要做两件事.
>您需要返回一个列表(或者实际上任何支持IEnumerable接口的列表). 于是 public ActionResult User_Read([DataSourceRequest]DataSourceRequest request) { var model = new List<ViewModelA>() { new ViewModelA() { FirstName = "Name",Supervisor = "Mgr",},new ViewModelA() { FirstName = "FirstName",Supervisor = "Supervisor",}; return Json(model.ToDataSourceResult(request),JsonRequestBehavior.AllowGet); } 在编辑之前,其他所有内容都与原始示例中的完全相同. 查看Kendo演示解决方案并研究示例.它不是最好的布局演示,有时您需要深入挖掘源代码以确切了解发生了什么,而不仅仅是依赖于演示似乎意味着您需要的内容.例如,在通过Ajax演示填充网格演示中,由Ajax调用并返回数据的实际操作方法未在演示中显示! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |