一个TreeView,希望在点击子节点的时候做一些操作,比如Session["a"]=null,之类的操作,我将这些操作写在了SelectedNodeChanged事件里,但是这个事件只在点击根节点的时候会被激发,而点击其下子节点时不会被激发,要怎么做才会在点击子节点时激发该事件或有什么事件可以实现此功能,谢谢各位了!告诉我修改AutoPostBack属性的兄弟就不用发言了

解决方案 »

  1.   

    我想你是想用AJAX的功能,
    这里有两篇文章,不知道是不是你想要的:
    http://blog.csdn.net/Delete123/archive/2009/01/12/3761503.aspx
    http://topic.csdn.net/t/20040630/14/3134516.html
      

  2.   

    if (TreeView1.SelectedNode.ChildNodes.Count > 0)
            {
                //是根节点,不执行
            }
            else
            {
                //是子节点,才执行
            }
      

  3.   

    protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
        {
            if (this.TreeView1.SelectedNode != null && this.TreeView1.SelectedNode.Parent == null)
            {
                //根节点
            }
            else
            {        }
        }
      

  4.   

    感谢楼上三位的回答,一楼的,我不是想用Ajax,只是想清空一下我的Session,二楼三楼的,我并不是想把根节点和子节点的操作分开操作,只要点击节点,不论根叶都执行一个操作,而且我打了断点,当点击子节点的时候根本就执行不到SelectedNodeChanged事件,我的问题可能没表述清楚,我就是想要在点击子节点的时候触发某个事件,然后在事件里做些相应的操作,谢谢大家了!
      

  5.   

    可怜啊…………who can tell me 啊!!!!
      

  6.   

    只有根节点触发SelectedNodeChanged事件??这种情况还没遇到过,检查代码吧
    确保TreeView1.SelectedNode.Value的值各不相同
      

  7.   

    前台调用__doPost()那个玩意,然后再在SelectedNodeChanged改下
    貌似说,treeView那个aotupostback不是很灵
      

  8.   

    前台代码:
    <asp:TreeView ID="trvCheckPage" runat="server" BackColor="#EDF7F8" BorderColor="#EDF7F8" ExpandDepth="0" Font-Bold="False" 
                   Font-Size="Larger" ShowLines="True" Visible="False" OnSelectedNodeChanged="trvCheckPage_SelectedNodeChanged">
          <Nodes>
               <asp:TreeNode SelectAction="SelectExpand" Text="基础信息" Value="基础信息">
                    <asp:TreeNode NavigateUrl="~/UI/BaseInfo/Info.aspx" Target="MainContent"
                            Text="法人个人信息" Value="个人信息" SelectAction="SelectExpand"></asp:TreeNode>
                    <asp:TreeNode NavigateUrl="~/UI/CorpBaseInfo/CorpInfo.aspx" Target="MainContent"
                            Text="法人单位信息" Value="单位信息" SelectAction="SelectExpand"></asp:TreeNode>
               </asp:TreeNode>
          </Nodes>
    </asp:TreeView>
    后台代码:
    protected void trvCheckPage_SelectedNodeChanged(object sender, EventArgs e)
    {
        Session["corpID"] = null;
        Session["id"] = null;
    }
      

  9.   

    随便拉了treeview 进页面,手动加了些节点上去,注册OnSelectedNodeChanged,运行,运行,点击节点就触发事件,不存在楼主说的情况。
      

  10.   

    搞明白了,是因为楼主的子节点带链接的缘故。
    其实 treeview 用postback很难看,如果楼主要坚持这么做,
    建议就把节点 的NavigateUrl去掉,改成绑定数据时候添加javascript函数实现。
      

  11.   

    就是呀,加节点时使value各不相同,这样才正常