C# Telerik Treeview MVC
我正试图与Telerik Treeview在MVC和C#中合作。 我有3个模型,只需要2个级别的节点(根节点和子节点)。 我需要根节点是第一个模型,子节点是第三个模型。 两者都由第二个模型链接 下面是我所做的代码:C# Telerik Treeview MVC,c#,model-view-controller,telerik,C#,Model View Controller,Telerik,我正试图与Telerik Treeview在MVC和C#中合作。 我有3个模型,只需要2个级别的节点(根节点和子节点)。 我需要根节点是第一个模型,子节点是第三个模型。 两者都由第二个模型链接 下面是我所做的代码: @using Hant.Material.ValueObject.Domain @using Hant.Material.Web.Models @model IEnumerable<DescriptivePatternModel> @{ Html.Teleri
@using Hant.Material.ValueObject.Domain
@using Hant.Material.Web.Models
@model IEnumerable<DescriptivePatternModel>
@{
Html.Telerik().TreeView()
.Name("treeView")
.ExpandAll(true)
.BindTo(Model, mapping => mapping
.For<DescriptivePatternModel>(binding => binding
.Children(descriptivePattern => descriptivePattern.Items)
.ItemDataBound((i, descriptivePattern) =>
{
i.Text = descriptivePattern.Name;
i.Value = descriptivePattern.Id.ToString();
})
)
.For<ItemModel>(binding => binding
.ItemDataBound((i, item) =>
{
i.Text = item.VersionDate.ToString();
i.Value = item.Id.ToString();
})
)
).Render();
}
@使用Hant.Material.ValueObject.Domain
@使用Hant.Material.Web.Models
@模型IEnumerable
@{
Html.Telerik().TreeView()
.名称(“树视图”)
.ExpandAll(正确)
.BindTo(模型,映射=>映射
.For(绑定=>绑定
.Children(descriptivePattern=>descriptivePattern.Items)
.ItemDataBound((i,descriptivePattern)=>
{
i、 Text=descriptivePattern.Name;
i、 Value=descriptivePattern.Id.ToString();
})
)
.For(绑定=>绑定
.ItemDataBound((i,item)=>
{
i、 Text=item.VersionDate.ToString();
i、 Value=item.Id.ToString();
})
)
).Render();
}
在这段代码中,我只能访问第二个模型。也许您可以尝试以下方法:
Children(descriptivePattern => descriptivePattern.Items.First().ThirdModelCollection)
我也有同样的问题。您需要一些东西从控制器返回json结果。在action方法中创建一个TreeViewItem,绑定它并将其作为jsonresult返回。注意treeview项目是如何返回的。根据您的情况,您可以返回treeviewitem 例如:
publicJSONResult刷新组(组currentGroup,int-rootUserGroupId)
{
parentId=新列表{rootUserGroupId};
var groupsTree=新列表{GetGroupHierarchy(currentGroup,rootUserGroupId)};
var treeViewItem=新的treeViewItem();
BindTo(groupsTree,mappings=>
{
mappings.For(binding=>binding
.ItemDataBound((项目,组)=>
{
item.Text=group.GroupName;
item.Value=group.GroupID.ToString();
item.LoadOnDemand=true;
})
.儿童(组=>组.亚组);
});
返回新的JsonResult
{
数据=新
{
ExpandedNodes=parentId,
Nodes=treeViewItem.Items
}
};
}
public JsonResult RefreshGroups(Group currentGroup, int rootUserGroupId)
{
parentIds = new List<int> { rootUserGroupId };
var groupsTree = new List<Group> { GetGroupHierarchy(currentGroup, rootUserGroupId) };
var treeViewItem = new TreeViewItem();
treeViewItem.BindTo(groupsTree, mappings =>
{
mappings.For<Group>(binding => binding
.ItemDataBound((item, group) =>
{
item.Text = group.GroupName;
item.Value = group.GroupID.ToString();
item.LoadOnDemand = true;
})
.Children(group => group.SubGroups));
});
return new JsonResult
{
Data = new
{
ExpandedNodes = parentIds,
Nodes = treeViewItem.Items
}
};
}