在我点击父级复选框时,我想同事也将子级所有选项都变为已选择,该如何做到?

解决方案 »

  1.   

    经过一番搜索,我得到了一篇文章。但是有个疑问,就是HTC是什么文件??
    http://blog.csdn.net/cuike519/archive/2005/02/02/278271.aspx
      

  2.   

    OK,我搞定了,分享下。在 Page_Load 事件中加入这么一段代码:
    这个TREEVIEW就可以在单击复选框时触发 TreeView1_TreeNodeCheckChanged 事件了。
    但是唯一缺点在于每次单击后都要dopostback一下。protected void Page_Load(object sender, EventArgs e)
        {
            PostBackOptions myPostBackOptions = new PostBackOptions(this);
            myPostBackOptions.ActionUrl = "Default.aspx";
            myPostBackOptions.AutoPostBack = false;
            myPostBackOptions.RequiresJavaScriptProtocol = true;
            myPostBackOptions.PerformValidation = true;
            TreeView1.Attributes.Add("onclick",Page.ClientScript.GetPostBackEventReference(myPostBackOptions));
            
        }希望有更好的办法`
      

  3.   

    我把全代码帖上:using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            PostBackOptions myPostBackOptions = new PostBackOptions(this);
            myPostBackOptions.ActionUrl = "Default.aspx";
            myPostBackOptions.AutoPostBack = false;
            myPostBackOptions.RequiresJavaScriptProtocol = true;
            myPostBackOptions.PerformValidation = true;
            TreeView1.Attributes.Add("onclick",Page.ClientScript.GetPostBackEventReference(myPostBackOptions));
        }    protected void TreeView1_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
        {
            if (e.Node.Checked == false)
                unCheckParents(e.Node);
            CheckChilds(e.Node);
        }    protected void CheckChilds(TreeNode treeNode)
        {
            foreach (TreeNode tn in treeNode.ChildNodes)
            {
                tn.Checked = treeNode.Checked;
                CheckChilds(tn);
            }
        }    protected void unCheckParents(TreeNode treeNode)
        {
            if (treeNode.Parent == null) return;
            treeNode.Parent.Checked = false;
            unCheckParents(treeNode.Parent);
        }
    }
    --------------------------------------------------<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TreeView ID="TreeView1" runat="server" OnTreeNodeCheckChanged="TreeView1_TreeNodeCheckChanged"
                ShowCheckBoxes="All" ShowLines="True" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged">
                <Nodes>
                    <asp:TreeNode Text="新建节点" Value="新建节点">
                        <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
                        <asp:TreeNode Text="新建节点" Value="新建节点">
                            <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
                            <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
                        </asp:TreeNode>
                    </asp:TreeNode>
                    <asp:TreeNode Text="新建节点" Value="新建节点">
                        <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
                    </asp:TreeNode>
                    <asp:TreeNode Text="新建节点" Value="新建节点">
                        <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
                    </asp:TreeNode>
                    <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
                    <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
                </Nodes>
            </asp:TreeView>
            &nbsp;</div>
        </form>
    </body>
    </html>