asp.net treeview双击节点事件

怎么得到... 怎么得到 展开
 我来答
janhoosan
2009-09-21 · TA获得超过2431个赞
知道小有建树答主
回答量:1233
采纳率:0%
帮助的人:910万
展开全部
今天的开发工作涉及到Treeview控件,其中有需求是双击Node结点然后向一个List控件中添加一条信息,找了很多的资料,其中关于获取双击的大概是在02年或者03年时候的一个Treeview控件,但是在ASP.net2.0中控件的行为有所改变,而且并不像第三方控件那样支持很多的客户端事件,在添加Node的时候,我们不能够使用类似普通控件那样在Attributes中增加OnDblClick的事件的处理代码.

通过查看Asp.Net生成的前端的HTML代码,可以发现最终生成的TreeView的前端展示是一个DIV,那么我们其实可以通过通过Div的双击事件来进一步处理,所以,我们首先先在PageLoad事件中向TreeView控件增加双击的客户端事件代码:

this.tvDept.Attributes.Add("ondblclick", "javascript:return treeNode(event, '')");

在客户端的事件中,如果我们能够得到Node结点的相关引用,那么事情就会变得简单的多了,但是很不幸,由于Treeview控件没有对客户端进行支持,所以我们并不能够直接得到Node结点的引用,但是我们可以通过DOM来进一步找到相关的Node结点.通过试验,我发现通过参数传进来的event.srcElement可以得到Node的在DOM中的引用,更幸运的时这个属性有一个nameProp属性可以得到引发这个双击时的链接的值,有了这个信息解决这个问题就比较简单了,通过在程序中动态生成Node结点的时候将NavigateUrl指定为一段Javascript代码,例如:subNode.NavigateUrl = "javascript:var x='" + subNode.Value + "';",然后在treeNode事件中使用eval来创建x这个变量,然后直接使用这个变量就可以了.完整的treeNode事件代码如下所示:

Code
function treeNode(mEvent, text) {
var o;
// IE
if (mEvent.srcElement) {
o = mEvent.srcElement;
}
// Netscape 和 Firefox
else if (mEvent.target) {
o = mEvent.target;
}

if (o.tagName == 'A' || o.tagName == 'a') {
eval(o.nameProp);
alert(x);
}
}
z714106294
2009-09-21 · 超过25用户采纳过TA的回答
知道答主
回答量:142
采纳率:0%
帮助的人:0
展开全部
事件里自己找
获取tv。 select什么XX
自己看中文
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nameyanzaode
2009-09-21 · TA获得超过147个赞
知道小有建树答主
回答量:116
采纳率:0%
帮助的人:92.9万
展开全部
大哥 TreeView 里面有双击节点的事件吗?我找了半天也没见有啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
love329125
2009-09-21 · TA获得超过396个赞
知道小有建树答主
回答量:202
采纳率:0%
帮助的人:175万
展开全部
hgfyh
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式