我在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 );
这样就只有点击的节点更改的时候才提交!
现在用下面的代码可以实现提交到服务器端,但是我在哪写自己的处理代码呢????(我要得到当前选择节点的索引号,然后查询数据库,从而得到此节点的详细信息显示到界面中)。当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 );
这样就只有点击的节点更改的时候才提交!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货