我在TreeView中加入CheckBox,由于我需要对SelectIndexChange事件在服务器端进行处理,所以我把TreeView的Autopostback属性设为True,但同时我还要实现让用户选择几个CheckBox时不用提交页面。因为这样频繁的提交页面是用户难以忍受的。请各位仁兄看用什么方法可以实现?或者是TreeView的Autopostback属性设为False,同时可以触发TreeView的SelectIndexChange事件,从而让我可以在服务器端处理这个事件也可以。
    现在用下面的代码可以实现提交到服务器端,但是我在哪写自己的处理代码呢????(我要得到当前选择节点的索引号,然后查询数据库,从而得到此节点的详细信息显示到界面中)。当AutoPostBack属性设为true时它的dg_SelectIndexChange事件可以触发,但现在AutoPostBack属性为false,并不能触发此事件啊???怎样才能得到当前选择节点的索引号呢??代码如下:
将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("'","file://'/")    +  "',  0,  'JavaScript');  \n"  +    "                        }  \n"  +      "            }  \n"  +    "//  -->  \n"  +  "</script>";  
Page.RegisterClientScriptBlock("InitTree",strScript  );  
 
这样就只有点击的节点更改的时候才提交!