我创建了一个项目,我需要放置一个树形视图以使用Guid字符串(父级为null的ParentId)来处理网格的父级和子级元素。我创建了一个父亲和一个孩子,但该页面未在网格中加载任何记录。我想念什么吗?
附件是在我的页面中查看的网格以及从数据源接收的模型
这是模特
public class ProjectTaskViewModel
{
public string IdTask { get; set; }
public string FatherId { get; set; }
public string TaskTitle { get; set; }
}
视图:
@(Html.Kendo().TreeList<Models.ProjectTaskViewModel>()
.Name("treelist")
.Columns(columns =>
{
columns.Add().Field(p => p.IdTask).Title(" ").Filterable(false).Sortable(false).Width("105px").Template("#=customformatter(Id)#");
columns.Add().Field(p => p.TaskTitle).Title("Nsme");
})
.Pageable(p => p.Refresh(true).PageSize(20).PageSizes(new int[] { 20, 50, 100 }))
.Sortable()
.Filterable()
.DataSource(dataSource => dataSource
.Read(read => read.Action("TreeViewDataSource", "ProjectTask").Data("CustomData")) //Function that contains correctly the IdProject param
.ServerOperation(false)
.Model(m => {
m.Id<string>(p => p.IdTask);
m.ParentId<string>(p => p.FatherId);
m.Field(p => p.TaskTitle);
m.Field<string>(p => p.FatherId);
})
)
)
最后是TreeViewDataSource:
public JsonResult TreeViewDataSource([DataSourceRequest]DataSourceRequest request, string IdProject)
{
var temp = _db.ProjectTasks.Where(o => o.IdProject == IdProject).Select(o => new ProjectTaskViewModel
{
FatherId = o.ParentId,
IdTask = o.Id,
TaskTitle = o.Title
});
var result = temp.ToTreeDataSourceResult(request, o => o.IdTask, o => o.FatherId, o => o);
return Json(result);
}
我看到there已经是对类似问题的答复,但是我不知道为什么它不能正常工作。
谢谢。