现在需要在treeview单击时触发数据加载,但是看来看去也没有onclick事件,有人说自己加
TreeView1.Attributes.Add("onlclick", "NodeClick();"); 
但是试了试,还是不行
不知道如何搞了,请高手指教

解决方案 »

  1.   

    加个委托事件 试试
    委托事件 
        public event SelectedNodeChangedHandler Selected;     protected void OnSelected(EventArgs e) 
        { 
            if (Selected != null) 
            { 
                Selected(this, e); 
            } 
        }    protected void treeFileView_SelectedNodeChanged(object sender, EventArgs e)
        {
            SelectedFilePath = treeFileView.SelectedValue;
            Label1.Text = SelectedFilePath;
            this.OnSelected(e);
        }
      

  2.   

    public event SelectedNodeChangedHandler Selected;
    这个应该放在什么地方?
      

  3.   

    你可以用selectIndexChange事件。
      

  4.   

    selectIndexChanged,执行完了yourTreeView.SelectedNode.Selected=false;
      

  5.   

    最高级的办法因该是1楼的方法,自己继承一个TreeView类。
      

  6.   

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                deptTree.Nodes.Clear();
                TreeNode rootNode = new TreeNode();
                rootNode.Value = "0";
                rootNode.Text = UnitConfigs.GetConfig().UnitName;
                rootNode.ImageUrl = UnitImage;
                rootNode.ImageToolTip = rootNode.Text;            rootNode.SelectAction = TreeNodeSelectAction.Select;            rootNode.Target = UnitTarget;
                if (!string.IsNullOrEmpty(Request.Url.Query))
                {
                    rootNode.NavigateUrl = DeptNavigateUrl + Request.Url.Query + string.Format("&DeptID={0}", 0);            }
                else
                {
                    rootNode.NavigateUrl = DeptNavigateUrl + string.Format("?DeptID={0}", 0);            }            BuildDeptTree(rootNode);
                deptTree.Nodes.Add(rootNode);            /*
                while (rootNode.ChildNodes.Count > 0)
                {
                    deptTree.Nodes.Add(rootNode.ChildNodes[0]);
                }
                */
                            deptTree.DataBind();        }
        }    private void BuildDeptTree(TreeNode parentNode)
        {
            DepartmentBLL bll = new DepartmentBLL();        DataSet ds = bll.GetList(string.Format("deptParentID = {0} order by deptOrderNum desc", parentNode.Value));        foreach (DataRow dRow in ds.Tables[0].Rows)
            {
                TreeNode subNode = new TreeNode();
                subNode.Value = dRow["deptID"].ToString();
                subNode.Text = dRow["deptName"].ToString();            subNode.PopulateOnDemand = true;            subNode.SelectAction = TreeNodeSelectAction.Select;            subNode.ImageUrl = DeptImage;
                subNode.ImageToolTip = dRow["deptName"].ToString(); ;            subNode.Target = DeptTarget;            if (!string.IsNullOrEmpty(Request.Url.Query))
                {
                    subNode.NavigateUrl = DeptNavigateUrl + Request.Url.Query + string.Format("&DeptID={0}", dRow["deptID"]);
                }
                else
                {
                    subNode.NavigateUrl = DeptNavigateUrl + string.Format("?DeptID={0}", dRow["deptID"]);
                }
                parentNode.ChildNodes.Add(subNode);
            }
        }
        protected void deptTree_TreeNodePopulate(object sender, TreeNodeEventArgs e)
        {
            BuildDeptTree(e.Node);
        }
      

  7.   

    [Quote=引用 1 楼 suyiming 的回复:]
    加个委托事件 试试 
    委托事件 
        public event SelectedNodeChangedHandler Selected;     protected void OnSelected(EventArgs e) 
        { 
            if (Selected != null) 
            { 
                Selected(this, e); 
            } 
        }     protected void treeFileView_SelectedNodeChanged(object sender, EventArgs e) 
        { 
            SelectedFilePath = treeFileView.SelectedValue; 
          …
    揭示这个错误怎么解决啊,能告诉一下吗?谢谢
     CS0246: 找不到类型或命名空间名称“SelectedNodeChangedHandler”(是否缺少 using 指令或程序集引用?)