在用TreeView的TreeView_SelectedNodeChanged事件时,发现这是个选择时触发的事件
有没有单击事件啊。。急,急,急网上找了很多都不行,人要崩溃了有好心人吗?帮帮我啊

解决方案 »

  1.   

    就触发个“单击事件”和SelectedNodeChanged效果一样
    只不过是“单击”时在后台代码里向页面输出一段话就行了(不是选时)
      

  2.   

    是想在点checkbox的时候 让它postback么?
      

  3.   

    写段js, 实现postback,  另外  在treeview外面加个updatepanel 看着舒服点。treeview.Attributes["onclick"] =
    "var sender = (typeof(event.target) == 'undefined' ? event.srcElement : event.target); if(sender.tagName == 'INPUT' && sender.type == 'checkbox') __doPostBack('" + treeNotAssignedPermission.ClientID + "','');";
      

  4.   

    上面有个地方不对  
    这个
    treeview.Attributes["onclick"] =
    "var sender = (typeof(event.target) == 'undefined' ? event.srcElement : event.target); if(sender.tagName == 'INPUT' && sender.type == 'checkbox') __doPostBack('" + treeview.ClientID + "','');";
      

  5.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    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
    {
        private DataSet ds;
        protected void Page_Load(object sender, EventArgs e)
        {
            this.TreeView1.Attributes["onclick"] = "var sender = (typeof(event.target) == 'undefined' ? event.srcElement : event.target); if(sender.tagName == 'INPUT' && sender.type == 'checkbox') __doPostBack('" + this.TreeView1.ClientID + "','');";
            if (!IsPostBack)
            {
                string sqlStr = "select UIN,Nick,JobTitle,sParentName,bOnline from dbo.UserBrief";
                DBHelper db = new DBHelper();
                ds = db.GetDataSet(sqlStr);
                //调用初始化TreeView方法
                InitTree(TreeView1.Nodes, "0");
            }
        }    private void InitTree(TreeNodeCollection Nds, string parentId)
        {
            DataView dv = new DataView();
            TreeNode tmpNd;
            dv.Table = ds.Tables["TreeView"];
            //筛选出根节点
            dv.RowFilter = "JobTitle=" + parentId;
            foreach (DataRowView drv in dv)
            {
                tmpNd = new TreeNode();
                //tmpNd.SelectAction = TreeNodeSelectAction.Expand;
                tmpNd.Value = drv["UIN"].ToString();
                //如果UIN大于10000说明是用户加上括号加上节点的URL
                if (Convert.ToInt16(drv["UIN"]) >= 10000)
                {
                    //在线名字为蓝色,不在线名字为灰色                tmpNd.Text = "<div style='color:#5353FF'>" + drv["sParentName"].ToString() + "[" + drv["Nick"] + "]" + "</div>";
                }
                else
                {
                    tmpNd.Text = tmpNd.Text = drv["sParentName"].ToString();
                }
                Nds.Add(tmpNd);
                //如果有子节点则调用本方法继续递归
                DataView dvTmp = new DataView();
                dvTmp.Table = ds.Tables["TreeView"];
                dvTmp.RowFilter = "JobTitle=" + drv["UIN"].ToString();
                if (dvTmp.Count != 0)
                {
                    InitTree(tmpNd.ChildNodes, tmpNd.Value);
                }
            }
        }
        protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
        {    }
    }
    的把他写到了Page_Load里面 不可以啊不可以啊不可以啊不可以啊不可以啊不可以啊不可以啊不可以啊不可以啊不可以啊
      

  6.   

    还是点击一次后进TreeView1_SelectedNodeChanged方法了
    在点就不进了
      

  7.   

    想实现点击节点时进 TreeView1_SelectedNodeChanged 方法
    而不是选择时
      

  8.   

    点击节点时你在加载节点的时候 给节点的text  上加上JS的click就可以了类似 public void CreateNode(TreeNode mynode, DataTable dt)
            {
                DataTable ds = dt.Copy();
                DataView dvTree = ds.DefaultView;
                dvTree.RowFilter = "Q_ParentCode = " + mynode.Value;
                if (dvTree.Count != 0)
                {
                    foreach (DataRowView Row in dvTree)
                    {
                        string name = Row["Q_Name"].ToString();
                        string Level = Row["Q_Level"].ToString();
                        TreeNode myNode = new TreeNode();
                        myNode.Value = Row["Q_ClassCode"].ToString();
                        myNode.Text = "<a herf='#'></a><img src=\"images\\i.gif\">" + name + "(" + Row["Q_Value"].ToString() + ")";
                        if (Row["Q_IsUsered"].ToString().Trim() != "True")
                        {
                            myNode.Text += " <font color='#ff0000'>[停用]</font>";
                        }
                        //byte[] bTemp = System.Text.Encoding.GetEncoding("GB2312").GetBytes(name);
                        //name = System.Web.HttpUtility.UrlEncode(bTemp);
                        myNode.Text += "&nbsp;&nbsp;&nbsp;&nbsp;<a href='#' onclick=\"OpenQAddWin(this)\" srclink=\"QuestionAdd.aspx?code=" + myNode.Value.ToString() + "&name=" + name + "&level=" + Level + "\"><font color='#0000FF'>添加下级指标</font></a>";
                        myNode.Text += "&nbsp;&nbsp;&nbsp;&nbsp;<a href='#' onclick=\"OpenQEditWin(this)\" srclink=\"QuestionEdit.aspx?code=" + myNode.Value.ToString() + "&name=" + name + "&level=" + Level + "\"><font color='#0000FF'>编辑</font></a>";
                        if (Row["Q_IsChild"].ToString().Trim() != "True")
                        {
                            myNode.Text += "&nbsp;&nbsp;&nbsp;&nbsp;<a href='#' onclick=\"OpenAEditWin(this)\" srclink=\"AnswerEdit.aspx?code=" + myNode.Value.ToString() + "&name=" + name + "&level=" + Level + "\"><font color='#0000FF'>编辑答案</font></a>";
                        }
                        CreateNode(myNode, dt);
                        mynode.ChildNodes.Add(myNode);
                    }
                }
            }