2023年6月22日发(作者:)
的TreeView控件使⽤⼀、定义1TreeViewTreeView 为⼀种⽤树形来组织数据的⽅式。例如我们经常看到的⽹页的菜单,有⼀级菜单,⼆级菜单,甚⾄还会有三级菜单。可以简单的把这些菜单看成⼀个树,每⼀个链接都是树的⼀个节点。。包含其他节点的节点称为“⽗节点”。包含在其他节点中的节点称为“⼦节点”。没有任何⼦节点的节点称为“叶节点”。不被任何其他节点包含并且是所有其他节点的上级节点的节点称为“根节点”。⼀个节点可以同时是⽗节点和⼦节点,但是不能同时为根节点、⽗节点和叶节点。节点为根节点、⽗节点还是叶节点决定着节点的⼏种可视化属性和⾏为属性。《转⾃MSDN》2. TreeNodeTreeNode 对象由以下四个⽤户界⾯ (UI) 元素组成,可以⾃定义或隐藏这些元素:展开节点指⽰图标,以表明节点是展开的、折叠的还是不可展开的。与节点关联的可选复选框。可选的节点图像。节点⽂本。 可以通过设置 TTreeView 类的 、 和 属性,指定可展开、可折叠和不可展开的节点的⾃定义图像。通过将 TTreeView 类的 属性设置为 ffalse,甚⾄可以完全隐藏展开节点的指⽰图标。 若要在节点旁显⽰复选框,请设置 TTreeView 类的 属性。如果 ShowCShowCheckBoxes 属性设置为 以外的⼀个值,将在指定的节点类型旁显⽰复选框。通过设置节点的 属性,可以有选择地重写个别节点的复选框。如果显⽰复选框,可使⽤ 属性确定复选框是否被选中。 通过设置 属性可以在节点中显⽰图像。此图像显⽰在节点⽂本旁。 TreeView 控件中的节点⽂本可以处于两种模式之⼀:选择模式或导航模式。默认情况下,会有⼀个节点处于选定状态。若要使⼀个节点处于导航模式,请将该节点的 属性值设置为空字符串 ("") 以外的值。若要使节点处于选择模式,请将节点的 NavNavigateUrl 属性设置为空字符串。 默认情况下,单击处于选择模式的节点会将页⾯回发到服务器并引发 事件。也可以选择设置节点的 SeSelectAction 属性,指定引发其他事件。有关更多信息,请参见 。若要确定哪个节点在被单击时处于选择模式,请使⽤ TTreeView 控件的 属性。 当节点处于导航模式时,禁⽤该节点的所有选择事件。单击处于导航模式的节点时,⽤户将被定向到指定的 URL。可以选择设置 属性以指定⽤来显⽰链接内容的窗⼝或框架。 TreeNode 类包含⼀些⽤于存储节点状态的属性。可使⽤ 属性确定节点是否被选定。若要确定节点是否已展开,请使⽤ 属性。 属性⽤于确定节点是否绑定到数据。当节点绑定到数据时,可以使⽤ 属性访问基础数据项。 此类提供了⼀些属性,有助于确定⼀个节点相对于树中其他节点的位置。使⽤ 属性确定节点的深度。使⽤ ValueValuePath 属性可以获得从当前节点到其根节点的分隔节点列表。若要确定节点的⽗节点,请使⽤ 属性。使⽤ 集合访问⼦节点。 有时,静态地预定义树结构并不可⾏,因为有时数据⼤⼩或⾃定义内容依⽤户输⼊⽽定。因此,TTreeView 控件⽀持动态节点填充。在运⾏阶段,可以在展开节点时填充该节点。有关动态节点填充的更多信息,请参见 属性。 有关 TTreeNode 的实例的初始属性值列表,请参见 构造函数。3. TreeNodeCollection TreeNodeCollection 类⽤于存储和管理 TTreeView 控件中的 TTreeNode 对象的集合。TTreeView 控件在其两个属性中使⽤ TTreeNodeCollection 类。在 属性中存储其根节点,在 属性中存储其选定的节点。TTreeNodeCollection 集合也⽤于 属性来存储⼦节点(如果有的话)。 TreeNodeCollection 类⽀持多种访问集合中的项的⽅法:使⽤ 索引器直接在特定的从零开始的索引处检索 TTreeNode 对象。使⽤ ⽅法创建可⽤于循环访问集合的枚举数。使⽤ fforeach (C#) 或 FFor Each (Visual Basic) 循环访问集合。使⽤ ⽅法将集合的内容复制到⼀个 对象中。 可以通过添加和移除 TTreeNode 对象以编程⽅式管理 TTreeNodeCollection。若要在集合中添加节点,请使⽤ 或 ⽅法。若要从集合中移除节点,请使⽤ 、 或 ⽅法。例如树形图---->⼆、⽤法例⼦:包含三个部分:⼀、⽹页前端())⼆、的配置(数据库的连接)三、数据库处理层()四、xml⽂件(效果:
实现: ⼀、⽹页前端(包含⼀个TreeView,⼀个XmlDataSource,两个LinkbButton(绑定删除与添加事件),三个label,两个select控件,⼀个TextBox) 实现:1、<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="" Inherits="m1" %>
le = "~/App_Data/";//XMLDataSource1控件的⽂件配置 nd();//TreeView的绑定 } public void onclick_delete(object sender, EventArgs e) { //上级的勾选的⼦集的去除(就是那个select 的下拉列表)--->删除数据库中的⼦集结果--->删除选中的节点的数据库数据-->删除select控件的节点
if ( > 0)//如果有被选中的节点 { for (int i = 0; i < ; i++)//遍历节点,总数为被选中的节点的数量
{ string selectchildsql = "select * from Area where parentID=" + 32(tr[i].Value);//sql语句--找出此节点的⼦集 DataSet dsc = ql(selectchildsql);//以数据集的形式显⽰⼦集 //通过for循环删除select 中显⽰的选中的元素的⼦集 foreach (DataRow dr in [0].Rows) { (new ListItem(dr["Name"].ToString(), dr["ID"].ToString())); } string childnodesql = "delete from Area where parentID=" + 32(tr[i].Value); ql(childnodesql);//删除被选中的节点的数据库中的⼦集 string selectsql = "select * from Area where ID=" + 32(tr[i].Value); DataSet ds = ql(selectsql);//删除数据库中被选中的节点 foreach (DataRow dr in [0].Rows) { TreeNodeCollection tr = dNodes;// TreeNodeCollection 类⽤于存储和管理 TreeView 控件中的 TreeNode 对象的集合。此语句是找出被选 { (new ListItem(dr["Name"].ToString(), dr["ID"].ToString()));//删除被选中的节点在select控件的值 } string sql = "delete from Area where ID=" + 32(tr[i].Value); sql(sql); AddXML();//重写XML⽂件 } } le = "~/App_Data/";//数据源配置⽂件 nd();//重新绑定到控件 } XmlTextWriter tw = null; public void AddXML() { DataSet ds = ql("select * from Area"); string filename = rectory + "App_";//找到位置 tw = new XmlTextWriter(filename,null);//书写xml的⽂件 ting = ed;//额,这个不懂 tartDocument();//开始书写XMl⽂件 WriteXMl([0]);//写⼊数据集 ndDocument();//结束书写 (); (); } ///
} static int count=0;//初始化所要循环的条数 public void WriteXMl(DataTable dt) {//在遍历⼦节点的时候,遍历完了就会⾃动停⽌。 DataSet ds=ql("select * from Area"); foreach (DataRow dr in )//循环的⼦集的元素 { { count++;//写的次数等于所要写的条数 WriteOneXML(dr); DataTable ddt = Getdata(dr);//遍历节点,搜寻他的所有⼦节点,并写⼊xml⽂件 WriteXMl(ddt);//递归寻找字节点 ndElement(); if (count != [0].)//这个count是为了遍历所有节点,这个树遍历完了之后才会清零,所以⼀开始要与[0].(总数)⽐ } else { count = 0;//如果整个树遍历完了之后就退出 break; } }
} public DataTable Getdata(DataRow dr)//获取它的⼦节点,并以⼀个数据集的形式返回 { string sql="select * from Area where parentID="+32(dr["ID"]); DataSet ds=ql(sql); return [0]; } protected void TreeView1_SelectedNodeChanged1(object sender, EventArgs e) {
} protected void TreeNodeCheckChanged1(object sender, EventArgs e) { } } }⼆、的配置
(); return x; } }
}}四 Xml的配置(可以随便写,反正需要重新书写XML⽂件)
发布者:admin,转转请注明出处:http://www.yc00.com/web/1687382628a5920.html
评论列表(0条)