vs2005  treeview   __doPostBack  事件
现在是,我每点击一个节点都 调用一次 __doPostBack刷新页面!
导致,,我 下拉条 拉到最底下的时候,点一节点,页面被刷新,,,下拉条又跑到最上面!
我要的结果: 点击节点,不调用 __doPostBack
先谢谢 高手指教!下面我的 代码:<asp:TreeView ID="DataTreeView" runat="server" CssClass="dtree" ShowLines="true" onclick="treeview_click();" SelectedNodeStyle-BackColor="ButtonFace"></asp:TreeView>
这里的单击事件 如下: function treeview_click()
      {
        var obj = event.srcElement;
            if(obj.tagName =="IMG")
            {
                return;
            } 
            var MENU_NAME = obj.innerText;
            var v = UserControl_Menu_Main.get_menus(MENU_NAME).value;  //AJAX 调后台
            var values = v.split(',');
            document.getElementById("MENU_ID").value = values[0];
            document.getElementById("MENU_NAME").value = values[1];
            document.getElementById("MENU_URL").value = values[2];
            document.getElementById("MENU_TYPE").value = values[3];
      }如何 去掉  点节点 就调用 __doPostBack   ?????谢谢!

解决方案 »

  1.   

    给你的节点添加:
    Node.SelectAction = TreeNodeSelectAction.Expand;
      

  2.   

    当我 使用  TreeNodeSelectAction.NONE已经 不再掉 __DOPOSTBACK,,,可 选中节点 背景颜色 不改变!效果上,看不到我当前 选中 哪个节点
      

  3.   

    汗,是你的所有Node加上这个属性
    比如:
          <asp:TreeView ID="tv1" runat="server">
            <Nodes><asp:TreeNode SelectAction="Expand"></asp:TreeNode></Nodes>
          </asp:TreeView>
      

  4.   

     foreach (DataRow dr in drs)
            {
                TN = new TreeNode();
                TN.Text = dr["MENU_NAME"].ToString();
                TN.Value = dr["MENU_ID"].ToString();
                TN.SelectAction = TreeNodeSelectAction.Expand;
                DataTreeView.Nodes.Add(TN);
                DataRow[] dr_ = dt.Select("PARENT_ID =" + dr["MENU_ID"].ToString());
                if (dr_.Length > 0)
                {
                    GetChildNode(dr_, TN);  //递归
                }
            }
            DataTreeView.DataBind();
      

  5.   

    TreeNodeSelectAction.Expand
    效果! 点击 最后一 节点 正常! 谢谢(刚才 遗漏)
    但是 改变背景颜色  无掉过!----无法得知 当前选择节点!
    非(最后一节点)  就  树的 收 放 事件!(尽量不要,不过也不影响整体使用!)
    如何 使用 TreeNodeSelectAction.Expand ,还可 改变 选中节点的 背景颜色 ? 谢谢
      

  6.   

    upadtepanel只要 调用  DOPOSTBACK 事件,,,是 无效果的!!!谢谢 采用 1楼的办法,我在 单击事件去改变  背景颜色!
      

  7.   

    若有 更好办法!实现不掉用 DOPOSTBACK ,并 选中 非最后节点的 时候 不调用  树的 收放事件(+ -),,请指教!谢谢
      

  8.   

    <%@ Page Language="C#" AutoEventWireup="true" Codebehind="WebForm4.aspx.cs" MaintainScrollPositionOnPostback="true" Inherits="WebApplication3.NewFolder1.WebForm4" %>MaintainScrollPositionOnPostback="true" 属性可以试试
      

  9.   

    MaintainScrollPositionOnPostback  是 树的 属性??? VS2005 未找到 此属性
      

  10.   

    是 PAGE  属性? 我试下。。
      

  11.   

    这个是维持页面位置。不POST的话可以设置NODE的属性NavigateUrl
    treenode1.NavigateUrl = "#";
      

  12.   

    呵呵!!!! 谢谢 你。帮我 说明 下 evt.target 
    evt.preventDefault(); 
    evt.stopPropagation(); 
    说明 意思呢???
      

  13.   

    你不是写了onclick方法吗?在里面处理下就OK了
      

  14.   

    这几句都是用在firefox浏览器下的,防止事件冒泡用的
      

  15.   

    本 打算 如此 处理的18给 法
    onclick
    {
    //前面的 函数处理
            if (window.event) {
                    window.event.returnValue = false;
                    return false;
                }
                else {
                     evt.preventDefault();
                     evt.stopPropagation();
                }
    }
    可行! 就不那么麻烦!!!就不知道  evt.preventDefault();
                     evt.stopPropagation();什么意思? 一直就没执行到!!!跟踪 也 报 未定义!