按照如下方法(也是很多人的解决方法)将autopostback设置成false;  
在body里添加  <body  onload="initTree()">  
然后在PageLoad里写:  
string  strTreeName  =  "TreeView1";  
string  strRef  =  Page.GetPostBackEventReference(TreeView1);  
string  strScript  =  "<script  language=\"JavaScript\">  \n"  +  "<!--  \n"  +  "            function  initTree()  {  \n"  +"                        "  +  strTreeName  +  ".onSelectedIndexChange  =  function()  {  \n"  +    "if  (event.oldTreeNodeIndex  !=    
event.newTreeNodeIndex)  \n"  +  "this.queueEvent('onselectedindexchange',  event.oldTreeNodeIndex  +  ','  +  event.newTreeNodeIndex);  \n"  +    "window.setTimeout('"  +  strRef.Replace("'","\\'")    +  "',  0,  'JavaScript');  \n"  +    "                        }  \n"  +      "            }  \n"  +    "//  -->  \n"  +  "</script>";  
Page.RegisterClientScriptBlock("InitTree",strScript  ); 结果把断点设在selectedindexchange上,没有进入,为什么我这里不能实现呢。是不是还有其它的要注意,代码是正确的?????

解决方案 »

  1.   

    因为你把autopostback设置成false了,所以TreeView在改变结点的焦点是就没有回发事件所以你的selectedindexchange也就不可能执行了.
      

  2.   

    不会呀,参考--HOW TO: Manually Post Back for Specific Events in an .aspx Page Using Visual Basic .NET:
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q328923
      

  3.   

    谢谢cancersyf(fengzhimei) ,这文章已经看过了,不过真的好奇怪,就是不会触发焦点。
    欢迎大家发现问题.