Asp.net 2.0的TreeView客户端个性化控制
2008-07-24 14:44
344 查看
ASP.NET 2.0 的 TreeView 控件功能虽说强大,但其客户端控制很逊色,本文将讲解 TreeView 的客户端实现原理,并实现两个个性化操作:
(1) 节点的全部打开和关闭;
TreeNode Expand(or Collapse) all
(2) 只打开一个节点(关闭其他兄弟节点)。
just one node expanded(when a client expand one node all other will collaps)
用记事本打开页面源代码,可以找到一下两个脚本引用:
<script src="/WebUI/WebResource.axd?d=RAQeBcDUNuP9iuS8q3tNEw2&t=633300220640000000" type="text/javascript">
</script>
<script src="/WebUI/WebResource.axd?d=JuTdJhq3NM8Jq_RhssAkEg2&t=633300220640000000" type="text/javascript">
</script>
将"/WebUI/WebResource.axd?d=RAQeBcDUNuP9iuS8q3tNEw2&t=633300220640000000"拷到地址栏尾,下载脚本,并以 .js 命名,另一个同样操作。分析第二个脚本文件,可以看到TreeView的很多客户端函数,其中关键的一个 TreeView_ToggleNode 就是客户端点击时触发的事件。
要想做个性化的操作,就得从 TreeView_ToggleNode 事件下手。我们无法更改.net封装好的脚本,只有“重写”。所谓的重写就是在原来的函数之后添加一个同名函数(因为js对于同名函数只调用最后一个)。
TreeView_ToggleNode 的原函数:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>LeftMenu_Tree</title>
</head>
<body bgcolor="#DDEDFD">
<form id="form1" runat="server">
<a href="javascript:TreeviewExpandCollapseAll('<%=TreeView1.ClientID%>', true)">Expand
All</a> <a href="javascript:TreeviewExpandCollapseAll('<%=TreeView1.ClientID%>', false)">
Collapse All</a>
<asp:TreeView ID="TreeView1" SkinID="tvClass" runat="server" ShowLines="true" NodeWrap="false">
</asp:TreeView>
</form>
</body>
</html>
<script language="javascript">
//-----------------------------------------------------------------------------
function $(s)
function isNull(_sVal)
function TreeviewExpandCollapseAll(treeViewId, expandAll)
function GetParentByTagName(parentTagName, childElementObj)
//-----------------------------------------------------------------------------
</script>
2. 只打开一个节点(关闭其他兄弟节点)
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>LeftMenu_Tree</title>
</head>
<body bgcolor="#DDEDFD">
<form id="form1" runat="server">
<a href="javascript:TreeviewExpandCollapseAll('<%=TreeView1.ClientID%>', true)">Expand
All</a> , <a href="javascript:TreeviewExpandCollapseAll('<%=TreeView1.ClientID%>', false)">
Collapse All</a>
<asp:TreeView ID="TreeView1" SkinID="tvClass" runat="server" ShowLines="true" NodeWrap="false">
</asp:TreeView>
</form>
</body>
</html>
<script language="javascript">
//2. 只打开一个节点(关闭其他兄弟节点)------------------------------------------
function TreeView_ToggleNode(data, index, node, lineType, children)
//折叠兄弟节点
function CollapseBrothers(data,childContainer)
//-----------------------------------------------------------------------------
</script>
(1) 节点的全部打开和关闭;
TreeNode Expand(or Collapse) all
(2) 只打开一个节点(关闭其他兄弟节点)。
just one node expanded(when a client expand one node all other will collaps)
用记事本打开页面源代码,可以找到一下两个脚本引用:
<script src="/WebUI/WebResource.axd?d=RAQeBcDUNuP9iuS8q3tNEw2&t=633300220640000000" type="text/javascript">
</script>
<script src="/WebUI/WebResource.axd?d=JuTdJhq3NM8Jq_RhssAkEg2&t=633300220640000000" type="text/javascript">
</script>
将"/WebUI/WebResource.axd?d=RAQeBcDUNuP9iuS8q3tNEw2&t=633300220640000000"拷到地址栏尾,下载脚本,并以 .js 命名,另一个同样操作。分析第二个脚本文件,可以看到TreeView的很多客户端函数,其中关键的一个 TreeView_ToggleNode 就是客户端点击时触发的事件。
要想做个性化的操作,就得从 TreeView_ToggleNode 事件下手。我们无法更改.net封装好的脚本,只有“重写”。所谓的重写就是在原来的函数之后添加一个同名函数(因为js对于同名函数只调用最后一个)。
TreeView_ToggleNode 的原函数:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>LeftMenu_Tree</title>
</head>
<body bgcolor="#DDEDFD">
<form id="form1" runat="server">
<a href="javascript:TreeviewExpandCollapseAll('<%=TreeView1.ClientID%>', true)">Expand
All</a> <a href="javascript:TreeviewExpandCollapseAll('<%=TreeView1.ClientID%>', false)">
Collapse All</a>
<asp:TreeView ID="TreeView1" SkinID="tvClass" runat="server" ShowLines="true" NodeWrap="false">
</asp:TreeView>
</form>
</body>
</html>
<script language="javascript">
//-----------------------------------------------------------------------------
function $(s)
function isNull(_sVal)
function TreeviewExpandCollapseAll(treeViewId, expandAll)
function GetParentByTagName(parentTagName, childElementObj)
//-----------------------------------------------------------------------------
</script>
2. 只打开一个节点(关闭其他兄弟节点)
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>LeftMenu_Tree</title>
</head>
<body bgcolor="#DDEDFD">
<form id="form1" runat="server">
<a href="javascript:TreeviewExpandCollapseAll('<%=TreeView1.ClientID%>', true)">Expand
All</a> , <a href="javascript:TreeviewExpandCollapseAll('<%=TreeView1.ClientID%>', false)">
Collapse All</a>
<asp:TreeView ID="TreeView1" SkinID="tvClass" runat="server" ShowLines="true" NodeWrap="false">
</asp:TreeView>
</form>
</body>
</html>
<script language="javascript">
//2. 只打开一个节点(关闭其他兄弟节点)------------------------------------------
function TreeView_ToggleNode(data, index, node, lineType, children)
//折叠兄弟节点
function CollapseBrothers(data,childContainer)
//-----------------------------------------------------------------------------
</script>
相关文章推荐
- asp.net 2.0 TreeView客户端个性化控制
- asp.net 2.0 TreeView客户端个性化控制
- asp.net 2.0 TreeView客户端个性化控制
- asp.net 2.0 TreeView客户端个性化控制
- asp.net 2.0 TreeView客户端个性化控制
- [转]asp.net 2.0 TreeView客户端个性化控制
- ASP.NET 2.0实现自带TreeView的客户端连带选择
- ASP.NET 2.0客户端回调的实现分析(1)
- 用ASP.NET 2.0主题控制网站外观
- 树型节点与数据库的动态连接(asp.net 2.0 TreeView控件的使用)
- ASP.NET 2.0 客户端无刷新调用服务器端方法获取数据
- asp.net 2.0 TreeView 数据绑定
- ASP.NET 2.0个性化配置(profile实现shoppingcart) 转..
- ASP.NET 2.0中构造个性化网页
- ASP.NET 2.0中构造个性化网页 (转)
- Scott Mitchell 的ASP.NET 2.0数据教程之二十二:为删除数据添加客户端确认
- ASP.NET 2.0 个性化用户配置
- asp.net 2.0中treeview中动态增加结点
- ASP.NET 2.0个性化配置(profile)
- asp.net 2.0 中 TreeView控件中的checkbox客户端操作