关于 Asp.net TreeView 控件

RayLynn 2006-04-21 06:17:44
在我点击父级复选框时,我想同事也将子级所有选项都变为已选择,该如何做到?
...全文
339 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
loveme4180 2006-04-26
  • 打赏
  • 举报
回复
恭喜楼主
RayLynn 2006-04-26
  • 打赏
  • 举报
回复
我把全代码帖上:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
PostBackOptions myPostBackOptions = new PostBackOptions(this);
myPostBackOptions.ActionUrl = "Default.aspx";
myPostBackOptions.AutoPostBack = false;
myPostBackOptions.RequiresJavaScriptProtocol = true;
myPostBackOptions.PerformValidation = true;
TreeView1.Attributes.Add("onclick",Page.ClientScript.GetPostBackEventReference(myPostBackOptions));
}

protected void TreeView1_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
{
if (e.Node.Checked == false)
unCheckParents(e.Node);
CheckChilds(e.Node);
}

protected void CheckChilds(TreeNode treeNode)
{
foreach (TreeNode tn in treeNode.ChildNodes)
{
tn.Checked = treeNode.Checked;
CheckChilds(tn);
}
}

protected void unCheckParents(TreeNode treeNode)
{
if (treeNode.Parent == null) return;
treeNode.Parent.Checked = false;
unCheckParents(treeNode.Parent);
}
}








--------------------------------------------------

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="TreeView1" runat="server" OnTreeNodeCheckChanged="TreeView1_TreeNodeCheckChanged"
ShowCheckBoxes="All" ShowLines="True" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged">
<Nodes>
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
</Nodes>
</asp:TreeView>
 </div>
</form>
</body>
</html>
RayLynn 2006-04-26
  • 打赏
  • 举报
回复
OK,我搞定了,分享下。在 Page_Load 事件中加入这么一段代码:
这个TREEVIEW就可以在单击复选框时触发 TreeView1_TreeNodeCheckChanged 事件了。
但是唯一缺点在于每次单击后都要dopostback一下。

protected void Page_Load(object sender, EventArgs e)
{
PostBackOptions myPostBackOptions = new PostBackOptions(this);
myPostBackOptions.ActionUrl = "Default.aspx";
myPostBackOptions.AutoPostBack = false;
myPostBackOptions.RequiresJavaScriptProtocol = true;
myPostBackOptions.PerformValidation = true;
TreeView1.Attributes.Add("onclick",Page.ClientScript.GetPostBackEventReference(myPostBackOptions));

}

希望有更好的办法`
RayLynn 2006-04-25
  • 打赏
  • 举报
回复
我已经从网上下载了,可就是属于1.1版本的,请问有没有2.0的,我搜索很久了可就是找不到`
nnh 2006-04-21
  • 打赏
  • 举报
回复
你到网上找看看有没有这个文件呢?这功能我还没研究呢.呵呵.
RayLynn 2006-04-21
  • 打赏
  • 举报
回复
经过一番搜索,我得到了一篇文章。但是有个疑问,就是HTC是什么文件??
http://blog.csdn.net/cuike519/archive/2005/02/02/278271.aspx
sunchaohuang 2006-04-21
  • 打赏
  • 举报
回复
up

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧