最近回答客户问题时,遇到这样的问题【人啊,想法就是多!】,说是要给TreeView 导航加个导航确认功能,开始看那个英文啊,好别扭!经过仔细问问,终于知道他到底要什么,然后自己就Google啊,可是不行,没有现成的,然后没有办法,我个人认为我的JS功底是一等一 Js还算可以【高人很多,不能放肆,谢谢高人指点】的,写个给他把,果然客户觉得爽,所以我觉得有必要公布出来供大家参考,本啦注释是E文的,我怕有些初学者不识E文,就修改注释为中文的了,发扬我一贯作风,贴可以跑起来的代码:
TreeView.aspx
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">
{
string confirmMessage = "是否要继续?Y/N?";
//定义客户端事件 treeNodeConfirmation
string script = @"function treeNodeConfirmation(MyEvent, text)
{
var obj;
// 检测是否是IE
if (MyEvent.srcElement)
{
obj = MyEvent.srcElement;
}
// 如果不是IE,则用其它(可能是NS 或 FF 等)
else if (MyEvent.target)
{
obj = MyEvent.target;
}
// 判断是否是LINK(tag A),因TreeView控件解析后是table + a 组合的,故要检测 A TAG
if(obj.tagName == 'A' || obj.tagName == 'a')
{
return confirm (text);
}
ScriptManager.RegisterClientScriptBlock(myTreeView, typeof(TreeView), "treeNodeClickConfirm", script, true);
//事件写入TreeView 的属性中,即在单击TreeView控件时调用事件
myTreeView.Attributes.Add("onclick", "javascript:return treeNodeConfirmation(event, '" + confirmMessage + "')");
<head id="Head1" runat="server">
<title>Demo</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="myTreeView" runat="server" >
<Nodes>
<asp:TreeNode Text="My Computer">
<asp:TreeNode Text="Favorites">
<asp:TreeNode Text="News">
<asp:TreeNode Text="MSN" NavigateUrl="http://www.msn.com" />
<asp:TreeNode Text="MSNBC News" NavigateUrl="http://www.msnbc.msn.com" />
</asp:TreeNode>
<asp:TreeNode Text="Technology">
<asp:TreeNode Text="Microsoft" NavigateUrl="http://www.microsoft.com" />
<asp:TreeNode Text="ASP.NET" NavigateUrl="http://www.asp.net" />
<asp:TreeNode Text="GotDotNet" NavigateUrl="http://www.gotdotnet.com" />
<asp:TreeNode Text="MSDN" NavigateUrl="http://msdn.microsoft.com" />
</asp:TreeNode>
<asp:TreeNode Text="Shopping">
<asp:TreeNode Text="MSN Shopping" NavigateUrl="http://shopping.msn.com" />
<asp:TreeNode Text="MSN Autos" NavigateUrl="http://autos.msn.com" />
</asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="City Links">
<asp:TreeNode Text="MapPoint" NavigateUrl="http://www.mappoint.com" />
<asp:TreeNode Text="MSN City Guides" NavigateUrl="http://local.msn.com" />
</asp:TreeNode>
<asp:TreeNode Text="Music Links">
<asp:TreeNode Text="MSN Music" NavigateUrl="http://music.msn.com" />
</asp:TreeNode>
</asp:TreeNode>
</Nodes>
</asp:TreeView>
</div>
</form>
</body>
</html>
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
string confirmMessage = "是否要继续?Y/N?";
//定义客户端事件 treeNodeConfirmation
string script = @"function treeNodeConfirmation(MyEvent, text)
{
var obj;
// 检测是否是IE
if (MyEvent.srcElement)
{
obj = MyEvent.srcElement;
}
// 如果不是IE,则用其它(可能是NS 或 FF 等)
else if (MyEvent.target)
{
obj = MyEvent.target;
}
// 判断是否是LINK(tag A),因TreeView控件解析后是table + a 组合的,故要检测 A TAG
if(obj.tagName == 'A' || obj.tagName == 'a')
{
return confirm (text);
}
}
";//注册事件
ScriptManager.RegisterClientScriptBlock(myTreeView, typeof(TreeView), "treeNodeClickConfirm", script, true);
//事件写入TreeView 的属性中,即在单击TreeView控件时调用事件
myTreeView.Attributes.Add("onclick", "javascript:return treeNodeConfirmation(event, '" + confirmMessage + "')");
}
<head id="Head1" runat="server">
<title>Demo</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="myTreeView" runat="server" >
<Nodes>
<asp:TreeNode Text="My Computer">
<asp:TreeNode Text="Favorites">
<asp:TreeNode Text="News">
<asp:TreeNode Text="MSN" NavigateUrl="http://www.msn.com" />
<asp:TreeNode Text="MSNBC News" NavigateUrl="http://www.msnbc.msn.com" />
</asp:TreeNode>
<asp:TreeNode Text="Technology">
<asp:TreeNode Text="Microsoft" NavigateUrl="http://www.microsoft.com" />
<asp:TreeNode Text="ASP.NET" NavigateUrl="http://www.asp.net" />
<asp:TreeNode Text="GotDotNet" NavigateUrl="http://www.gotdotnet.com" />
<asp:TreeNode Text="MSDN" NavigateUrl="http://msdn.microsoft.com" />
</asp:TreeNode>
<asp:TreeNode Text="Shopping">
<asp:TreeNode Text="MSN Shopping" NavigateUrl="http://shopping.msn.com" />
<asp:TreeNode Text="MSN Autos" NavigateUrl="http://autos.msn.com" />
</asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="City Links">
<asp:TreeNode Text="MapPoint" NavigateUrl="http://www.mappoint.com" />
<asp:TreeNode Text="MSN City Guides" NavigateUrl="http://local.msn.com" />
</asp:TreeNode>
<asp:TreeNode Text="Music Links">
<asp:TreeNode Text="MSN Music" NavigateUrl="http://music.msn.com" />
</asp:TreeNode>
</asp:TreeNode>
</Nodes>
</asp:TreeView>
</div>
</form>
</body>
</html>
如果你觉得有更好的办法,请多多赐教,谢谢了先。