Joh*_*rik 3 c# razor asp.net-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);
}
Run Code Online (Sandbox Code Playgroud)
ViewModelA
public class ViewModelA
{
public List<SomeClass> MyList { get; set; }
}
public class SomeClass
{
public string FirstName { get; set; }
public string Supervisor { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
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"))
)
)
Run Code Online (Sandbox Code Playgroud)
详细信息:当我运行此页面时,页面加载正常且没有错误,但是,页面上没有填充任何数据.因此,网格存在,但它只显示FirstName和Supervisor的列名.我知道你不应该对数据进行硬编码,但我现在只想在网格上显示一些内容,我希望数据来自Controller.
问题:为了在网格上显示数据,我需要更改什么?此外,根据Controller中的数据,如何向网格添加多行?
更新:我最初提出的问题已部分解决.仍需要帮助才能将数据显示到网格中.
要使代码工作,您需要做两件事.
您需要返回一个列表(或实际上支持IEnumerable接口的任何内容).
您需要通过调用ToDataSourceResult来格式化返回数据.
于是
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);
}
Run Code Online (Sandbox Code Playgroud)
在编辑之前,其他所有内容都与原始示例中的完全相同.
查看Kendo演示解决方案并研究示例.它不是最好的布局演示,有时您需要深入挖掘源代码以确切了解发生了什么,而不仅仅是依赖于演示似乎意味着您需要的内容.例如,在通过Ajax演示填充网格演示中,由Ajax调用并返回数据的实际操作方法未在演示中显示!
| 归档时间: |
|
| 查看次数: |
5948 次 |
| 最近记录: |