【问题标题】:Treeview parent node should select with its child node by default in TreeviewTreeview 父节点应在 Treeview 中默认选择其子节点
【发布时间】:2014-12-17 05:12:24
【问题描述】:

我有一个带有每个节点复选框的树视图控件。每个节点代表一个部门。我希望默认情况下应选择主要部门及其子部门。 下面是控制代码:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
   <ContentTemplate>
       <asp:LinkButton runat="server" ID="lnkSelectAllDepartments" Text="Select All" OnClick="lnkSelectAllDepartments_Click"  Font-Bold="false" Font-Underline="true"></asp:LinkButton>|
           <span class="labelText" style="font-weight:bold"> | </span>
              <asp:LinkButton runat="server" ID="lnkDeselectAllDepartments" Text="Deselect All" OnClick="lnkDeselectAllDepartments_Click"  Font-Bold="false" Font-Underline="true"></asp:LinkButton>
                  <br />
                  <br />
                      <asp:CheckBoxList ID="listDepartment" runat="server" Height="120px" RepeatDirection="Vertical" RepeatLayout="Flow"> </asp:CheckBoxList>
                      <asp:TreeView ID="tvDepartments" runat="server" ShowCheckBoxes="All" ShowExpandCollapse="true" ExpandDepth=0 NodeStyle-ForeColor="Black" ></asp:TreeView>
     </ContentTemplate>
</asp:UpdatePanel> 

下面的代码是后面的代码:

/*Added for TreeView control...*/
string rootDepartmentName = ConfigurationReader.ParentDepartmentName; /
if (lstDepartmentDetails.Any(item => item.Name.CompareString(rootDepartmentName) && item.ParentName.IsNullOrEmpty()))
{
    clsRelFilter rootDepartment = lstDepartmentDetails.FirstOrDefault(item => item.Name.CompareString(rootDepartmentName) && item.ParentName.IsNullOrEmpty());
    TreeNode ParentNode = new TreeNode(rootDepartment.Name, rootDepartment.Uri);

    AddChildDepartmentsToNode(ParentNode, rootDepartment, lstDepartmentDetails);
    tvDepartments.Nodes.Add(ParentNode);
}

【问题讨论】:

    标签: c# treeview


    【解决方案1】:

    这是任何基于树的控件中的经典问题。您可以使用某种形式的递归,以便在每个父复选框选择时,您递归地遍历该节点的所有子节点(向下到叶级别)并将它们的复选框也标记为选中。您可以先深入,直到没有更多后代,然后再爬回父代,依此类推。

    此外,您还应该考虑祖先。如果一个节点的所有子节点都未选中,您是否也应该取消选中父节点?或者,如果你检查一个后代,你应该上树并检查祖先节点吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      相关资源
      最近更新 更多