Incell编辑
用于ASP的Telerik UI TreeList组件。NET MVCenables you to implement cell editing and make and save batch updates.
有关可运行的示例,请参阅TreeList的批量编辑演示.
设置TreeList的incell编辑模式。
类中添加一个新类
~ /模型
文件夹中。下面的示例使用EmployeeDirectoryModel
名字public class EmployeeDirectoryModel {public int EmployeeId {get;设置;}公共字符串FirstName {get;设置;}公共字符串LastName {get;设置;}公共int?report to {get;设置;}}
开放
TreeListController.cs
并添加一个新的操作方法,该方法将返回目录为JSON。TreeList将对此操作发出Ajax请求。public JsonResult All_InCell([DataSourceRequest] DataSourceRequest request) {var result = GetDirectory()。ToTreeDataSourceResult(request, e => e.EmployeeId, e => e.ReportsTo, e => e);返回Json(结果);}
添加一个新的操作方法
TreeListController.cs
.它将负责保存新的数据项。命名方法Create_InCell
.public JsonResult Create_InCell([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable
employees) {if (ModelState.IsValid) {foreach (var employee in employees) {employeeDirectory. > employees。插入(员工,状态);返回Json(employees.)ToTreeDataSourceResult(请求状态));} 添加一个新的操作方法
TreeListController.cs
.它将负责保存更新的数据项。命名方法Update_InCell
.public JsonResult Update_InCell([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable
employees) {if (ModelState.IsValid) {foreach (var employee in employees) {employeeDirectory. > employees。更新(员工、状态);返回Json(employees.)ToTreeDataSourceResult(请求状态));} 添加一个新的操作方法
TreeListController.cs
.它将负责保存已删除的数据项。命名方法Destroy_InCell
.public JsonResult Destroy_InCell([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable
employees) {if (ModelState.IsValid) {foreach (var employee in employees) {employeeDirectory. > employees。删除(员工、状态);返回Json(employees.)ToTreeDataSourceResult(请求状态));} 在视图中,配置TreeList以使用在前面步骤中创建的操作方法。的
创建
,更新
,摧毁
action方法必须返回一个包含修改或删除记录的集合,这将使DataSource能够应用相应的更改。的创建
方法必须返回一个包含已分配ID字段的已创建记录的集合。
@(Html.Kendo().TreeList() .Name("treelist") .Toolbar(toolbar => {toolbar. create ();toolbar.Save ();toolbar.Cancel ();}) . columns (columns => {columns. add()。字段(e => e.f firstname)。标题(“名字”).Width (220);columns.Add()。字段(e => e. lastname)。标题(“姓”).Width (100);columns.Add()。命令(c => {c.CreateChild())。文本(“添加子”); c.Destroy(); } ).Width(240); }) .Editable(e => e.Mode(TreeListEditMode.InCell).Move(false)) .Events(ev => ev.DataBound("onDataBound")) .DataSource(dataSource => dataSource .Batch(true) .Read(read => read.Action("All_InCell", "TreeList")) .Create(create => create.Action("Create_InCell", "TreeList").Type(HttpVerbs.Post)) .Update(update => update.Action("Update_InCell", "TreeList").Type(HttpVerbs.Post)) .Destroy(delete => delete.Action("Destroy_InCell", "TreeList").Type(HttpVerbs.Post)) .Model(m => { m.Id(f => f.EmployeeId); m.ParentId(f => f.ReportsTo); }) ) )