首页 > 代码库 > 由TreeView 如何触发OnSelectedNodeChanged事件想到的与做到的
由TreeView 如何触发OnSelectedNodeChanged事件想到的与做到的
前提是每层的结点上设置了NavigateUrl OnSelectedNodeChanged事件好像失去了作用。 另外TreeView是没有AutoPostBack的!!!! 那么要如何触发OnSelectedNodeChanged事件呢? 其实我想实现的功能很简单就是要点击节点时,该节点新式有所变化。
NavigateUrl把这个去掉试试呢?如果可以,就NavigateUrl 交给后台事件OnSelectedNodeChanged里面赋值
去掉可以触发。 不去掉,我换用JS来实现,但是它没有动态去更新,得到的仍是第一次默认的节点ID。 如何才能动态得到所选的节点呢? 我的代码是:
function goUrl(src) { var a=" <%=test() %>"; alert(a); } tn.NavigateUrl = "javascript:goUrl(‘CList.aspx?PID=" + _dataTable.Rows[0]["PID"].ToString() + "‘);"; protected string test() { this.SelectedID = new Guid(stv1.SelectedNode.Value); return this.SelectedID.ToString(); }
其实目的就是为了实现点节点时,能高亮显示以示选中,
解决了。用JQUERY实现的。 方法:
jQuery( function() { var treeObj = jQuery("#<%=stv1.ClientID %>"); //alert(treeObj.selector); //alert(treeObj.length); var anchorObjList = treeObj.find("a"); //alert(anchorObjList.length); anchorObjList.click( function() { //alert(‘test‘); anchorObjList.filter(".selectStyle").removeClass("selectStyle"); anchorObjList.filter(".ctl00_ContentPlaceHolder1_stv1_0.ctl00_ContentPlaceHolder1_stv1_1.ctl00_ContentPlaceHolder1_stv1_5").removeClass("ctl00_ContentPlaceHolder1_stv1_0 ctl00_ContentPlaceHolder1_stv1_1 ctl00_ContentPlaceHolder1_stv1_5"); jQuery(this).addClass("selectStyle");//这里的this就是指向点击的元素,点哪个就是哪个。 }); });
<style type="text/css">
.selectStyle {font-weight:bold; text-decoration:underline;Color:#5555DD;padding:0;} </style>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。