Skip to content

Commit b175502

Browse files
committed
chore(treeview-checkboxes): add example of multiple selection and checking of nodes
1 parent 4d3c162 commit b175502

File tree

1 file changed

+128
-1
lines changed

1 file changed

+128
-1
lines changed

components/treeview/checkboxes/overview.md

Lines changed: 128 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -584,7 +584,7 @@ You can allow the user to click on the node itself and the TreeView will automat
584584

585585
You can combine both selection and checking nodes. To keep both collections in sync you can assign the same collection to both `SelectedItems` and `CheckedItems` as demonstrated in the example below.
586586

587-
````CSHTML
587+
````Single
588588
@* You can couple checking the item and placing it in the selected item list. *@
589589
590590
<TelerikTreeView Data="@FlatData"
@@ -608,6 +608,133 @@ You can combine both selection and checking nodes. To keep both collections in s
608608
</div>
609609
610610
611+
@code {
612+
613+
public IEnumerable<object> checkedItems { get; set; } = new List<object>();
614+
615+
public class TreeItem
616+
{
617+
public int Id { get; set; }
618+
public string Text { get; set; }
619+
public int? ParentIdValue { get; set; }
620+
public bool HasChildren { get; set; }
621+
public string Icon { get; set; }
622+
public bool Expanded { get; set; }
623+
}
624+
625+
public IEnumerable<TreeItem> FlatData { get; set; }
626+
627+
protected override void OnInitialized()
628+
{
629+
LoadFlatData();
630+
631+
var precheckedItem = FlatData.Where(x => x.Id == 3); // provide initial checked item when the page is loaded
632+
633+
checkedItems = new List<object>(precheckedItem);
634+
}
635+
636+
private void LoadFlatData()
637+
{
638+
List<TreeItem> items = new List<TreeItem>();
639+
640+
items.Add(new TreeItem()
641+
{
642+
Id = 1,
643+
Text = "Project",
644+
ParentIdValue = null,
645+
HasChildren = true,
646+
Icon = "folder",
647+
Expanded = true
648+
});
649+
650+
items.Add(new TreeItem()
651+
{
652+
Id = 2,
653+
Text = "Design",
654+
ParentIdValue = 1,
655+
HasChildren = true,
656+
Icon = "brush",
657+
Expanded = true
658+
});
659+
items.Add(new TreeItem()
660+
{
661+
Id = 3,
662+
Text = "Implementation",
663+
ParentIdValue = 1,
664+
HasChildren = true,
665+
Icon = "folder",
666+
Expanded = true
667+
});
668+
669+
items.Add(new TreeItem()
670+
{
671+
Id = 4,
672+
Text = "site.psd",
673+
ParentIdValue = 2,
674+
HasChildren = false,
675+
Icon = "psd",
676+
Expanded = true
677+
});
678+
items.Add(new TreeItem()
679+
{
680+
Id = 5,
681+
Text = "index.js",
682+
ParentIdValue = 3,
683+
HasChildren = false,
684+
Icon = "js"
685+
});
686+
items.Add(new TreeItem()
687+
{
688+
Id = 6,
689+
Text = "index.html",
690+
ParentIdValue = 3,
691+
HasChildren = false,
692+
Icon = "html"
693+
});
694+
items.Add(new TreeItem()
695+
{
696+
Id = 7,
697+
Text = "styles.css",
698+
ParentIdValue = 3,
699+
HasChildren = false,
700+
Icon = "css"
701+
});
702+
703+
FlatData = items;
704+
}
705+
}
706+
````
707+
````Multiple
708+
@* To select and check multiple items change both modes to Multiple *@
709+
710+
<TelerikTreeView Data="@FlatData"
711+
CheckBoxMode="@TreeViewCheckBoxMode.Multiple"
712+
SelectionMode="@TreeViewSelectionMode.Multiple"
713+
@bind-SelectedItems="@checkedItems"
714+
@bind-CheckedItems="@checkedItems">
715+
<TreeViewBindings>
716+
<TreeViewBinding IdField="Id" ParentIdField="ParentIdValue" ExpandedField="Expanded" TextField="Text" HasChildrenField="HasChildren" IconField="Icon" />
717+
</TreeViewBindings>
718+
</TelerikTreeView>
719+
720+
<div>
721+
Checked items:
722+
@if (checkedItems.Any())
723+
{
724+
<ul>
725+
@foreach (var item in checkedItems)
726+
{
727+
TreeItem checkedItem = item as TreeItem;
728+
<li>
729+
@checkedItem.Text
730+
</li>
731+
732+
}
733+
</ul>
734+
}
735+
</div>
736+
737+
611738
@code {
612739
613740
public IEnumerable<object> checkedItems { get; set; } = new List<object>();

0 commit comments

Comments
 (0)