<div>
<ejs-dropdownlist id="games" dataSource="@ViewBag.data" placeholder="Select a game" popupHeight="220px" select="OnSelect">
</ejs-dropdownlist>
<ejs-treeview id="tree">
<e-treeview-fields Id="id" query="new ej.data.Query().addParams('GroupId', 'Root')" ParentID="parentGroupId" Text="name" HasChildren="hasChildren">
<e-data-manager url="/Treeview/GetGroupList" adaptor="UrlAdaptor"></e-data-manager>
</e-treeview-fields>
</ejs-treeview>
</div>
<script>
function OnSelect(args) {
var tree = document.getElementById("tree").ej2_instances[0];
tree.fields = {
dataSource: new ej.data.DataManager({
url: "/Treeview/GetGroupList",
adaptor: new ej.data.UrlAdaptor(),
offline: true
}, new ej.data.Query().addParams('GroupId', args.itemData.value))
}
}</script> |
[ActionName("GetGroupList")]
public IEnumerable<ParentNodeViewModel> GetGroupList([FromBody] RequestData dm)
{
IEnumerable<ParentNodeViewModel> data;
DataOperations operation = new DataOperations();
if (dm.Where == null && dm.GroupId == "Root")
{
data = TemplateData;
}
else if (dm.GroupId == "AddOneNode")
{
List<ParentNodeViewModel> TempData = TemplateData;
TempData.Add(new ParentNodeViewModel { hasChildren = false, id = Guid.NewGuid().ToString(), name = "Internal2" });
data = TempData;
}
else if (dm.GroupId == "AddTwoNode")
{
List<ParentNodeViewModel> TempData = TemplateData;
TempData.Add(new ParentNodeViewModel { hasChildren = false, id = Guid.NewGuid().ToString(), name = "Internal2" });
TempData.Add(new ParentNodeViewModel { hasChildren = false, id = Guid.NewGuid().ToString(), name = "Internal3" });
data = TempData;
}
else if (dm.GroupId == "AddThreeNode")
{
List<ParentNodeViewModel> TempData = TemplateData;
TempData.Add(new ParentNodeViewModel { hasChildren = false, id = Guid.NewGuid().ToString(), name = "Internal2" });
TempData.Add(new ParentNodeViewModel { hasChildren = false, id = Guid.NewGuid().ToString(), name = "Internal3" });
TempData.Add(new ParentNodeViewModel { hasChildren = false, id = Guid.NewGuid().ToString(), name = "Internal4" });
data = TempData;
}
...
return data;
} |
[index.cshtml]
<div>
<ejs-dropdownlist id="games" dataSource="@ViewBag.data" placeholder="Select a game" popupHeight="220px" select="OnSelect">
</ejs-dropdownlist>
<ejs-treeview id="tree">
<e-treeview-fields dataSource="ViewBag.dataSource" id="id" parentId="pid" text="name" hasChildren="hasChild" expanded="expanded"></e-treeview-fields>
</ejs-treeview>
</div>
<script>
function OnSelect(args) {
var tree = document.getElementById("tree").ej2_instances[0];
for (var i = 0; i < tree.getTreeData().length; i++) {
var node = tree.getTreeData(tree.getTreeData()[i].id.toString());
//Change the field value
node[0].customField = args.itemData.value;
}
//Print the TreeView datasource.
console.log(tree.getTreeData());
}
</script>
[HomeController.cs]
public IActionResult Index()
{
ViewBag.data = new string[] { "Value1", "Value2", "Value3" };
List<object> listdata = new List<object>();
listdata.Add(new
{
id = 1,
name = "Australia",
hasChild = true,
expanded = true,
customField = "Custom-Info"
}); |