Как я могу это сделать проверить дочерние узлы в treeview если родительский узел проверен
Я работаю с Asp.net и используйте treeview.Я хочу сделать это, если родительский узел проверен, то все дочерние узлы проверяются автоматически.Кроме того, если один или несколько дочерних узлов проверяются, родительский узел проверяется.
Что я уже пробовал:
Я погуглил и попробовал использовать событие AfterCheck, но у моего treeview такого метода нет.Тогда я попробовал
чтобы использовать событие changechecked, но оно не работает.Мои коды ниже:
<asp:TreeView ID="TreeView1" runat="server" Width="189px"></asp:TreeView>
protected void Create_PermissionsTreeView() { DataTable dt = new DataTable(); dt = Convert_ActionDatatoDataTable(); for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i]["PARENT_CODE"].ToString() == "0") { TreeNode node = new TreeNode(); node.ShowCheckBox = true; node.Text = dt.Rows[i]["NAME_AZ"].ToString(); node.Value = dt.Rows[i]["ID"].ToString(); TreeView1.Nodes.Add(node); foreach (DataRow row1 in dt.Rows) { if (row1["PARENT_CODE"].ToString() == dt.Rows[i]["CODE"].ToString()) { TreeNode childnode = new TreeNode(); childnode.ShowCheckBox = true; childnode.Text = row1["NAME_AZ"].ToString(); childnode.Value = row1["ID"].ToString(); TreeView1.Nodes[i].ChildNodes.Add(childnode); } } } } }
protected void TreeView1_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e) { foreach (TreeNode childNode in e.Node.ChildNodes) { childNode.Checked = e.Node.Checked; } }
Пожалуйста, помогите мне..
Ralf Meier
В данный момент у меня нет VS, чтобы проверить мой ответ, но вы можете попробовать внутри своего метода 'CheckedChanged' использовать 'e.SelectedNode.ChildNodes' вместо 'e.Node.ChildNodes'.
Также замените 'e.Node.Проверил" С "Е.Выбранный узел.Проверено".
Поскольку я не могу проверить это, я не публикую его в качестве ответа ...