大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> NET专区 -> 关于使用TreeView 控件的简单介绍

关于使用TreeView 控件的简单介绍

时间: 2021-07-31 作者:daque

怎样运用microsoft.web.ui.treeviewmicrosoft.web.ui.treeview是微软颁布的一个用来表露树型构造的web control,他的用途断定大师都仍旧很领会了。我这边重要引见它的运用本领,以及举行数据帮定的方法微软的这个treeview是一个servercontrol,运转在效劳器端,在运用的功夫必须要举行备案。开始引入名字空间:<%@ import namespace="microsoft.web.ui.webcontrols" %>而后举行备案:<%@ register tagprefix="iewc" namespace="microsoft.web.ui.webcontrols" assembly="microsoft.web.ui.webcontrols, version=1.0.2.226, culture=neutral, publickeytoken=31bf3856ad364e35" %>这个吩咐是用来备案自设置控件的,简直含意不妨察看msdn.备案此后就不妨在页面中运用了。treeview运用treenode子标志来设置个中的节点,如底下的方法:<form runat="server"><iewc:treeview><treenode text = "parent1" runat="server"><treenode text="child1"/><treenode text="child2"/><treenode text="child3"/></treenode><treenode text = "parent2"><treenode text="child4"/><treenode text="child5"/><treenode text="child6"/></treenode></iewc:treeview></form>另一个比拟有效的标志是<treenodetype>,这个标志不妨用来设置表露节点的方法。比方,在默许的情景下,treeview控件沿用"+","-"那么的图标来表白某一个节点能否居于打开状况,然而你不妨运用treenodetype的expandimageurl属性来本人设置打开后须要表露的图片,运用imageurl指定封闭时的图标。例:<form id="myform" runat="server"><mytree:treeview runat="server" childtype="folder"><mytree:treenodetype type="folder" expandedimageurl="./images/folderopen.gif" imageurl="./images/folder.gif" /><mytree:treenode text="michigan"> <mytree:treenode text="detroit" /> <mytree:treenode text="farmington" /> <mytree:treenode text="southfield" /></mytree:treenode><mytree:treenode text="washington" > <mytree:treenode text="bellevue" /> <mytree:treenode text="redmond" /> <mytree:treenode text="woodinville" /></mytree:treenode></mytree:treeview></form>在你表露这个treeview的功夫你就不妨创造,一切节点前方的图标仍旧形成了你本人设置的图标了。假设你蓄意第一层沿用文献夹的翻开封闭款式的图标,第二层则沿用一致于文献一律的图标,则不妨运用childtype如许的属性来定制,例:<form id="myform" runat="server"><mytree:treeview runat="server" childtype="folder"><mytree:treenodetype type="folder" childtype="file" expandedimageurl="./images/folderopen.gif" imageurl="./images/folder.gif" /><mytree:treenodetype type="file" imageurl="./images/file.gif" /><mytree:treenode text="michigan"> <mytree:treenode text="detroit" /> <mytree:treenode text="farmington" /> <mytree:treenode text="southfield" /></mytree:treenode><mytree:treenode text="washington" > <mytree:treenode text="bellevue" /> <mytree:treenode text="redmond" /> <mytree:treenode text="woodinville" /></mytree:treenode></mytree:treeview></form>而后表露这个treeview,你会创造第一层的图标仍旧是folder,第二层的图标则十足形成了file。按照如许的办法,你还不妨设置第三层第四层,只有运用childtype同type举行对应一层层嵌套下来就不妨了。treeview控件有三个属性不妨用来运用css设置节点的方法,defaultstyle,hoverstyle,selectedstyle,看名字就不妨领会大约的道理,不作简直引见了。底下说一下treeview的数据帮定题目。treeview控件的数据帮定只能帮定到xml文献大概包括xml实质的字符串上去。被绑定的字符串大概文献必需沿用如次方法:<treenodes><treenode text="node1" /><treenodes>在文献大概字符串中,巨细写是敏锐的,以是你必需运用十足小写的treenodes标志把一切的节点标志掩盖起来,里面的节点标志则只假如前后巨细写普遍就不妨了。而后把这个文献的url大概字符串赋值给treeview大概treenode标志的treenodesrc属性就不妨了。运用codebehind形式的伯仲们须要提防,不许在page_onload事变中指定这个属性,那么什么都表露不出来。固然也不妨运用sql server 2k供给的xml扶助功效径直把treeview同数据库中有档次联系的数据帮定起来。有两种本领不妨采用:一种本领是运用sql server 2k供给的web查问办法,归来一个xml字符串流,例:<ie:treenode text="root" type="tree" expanded="true"treenodesrc="http://localhost/mysqlxml?sql=execute+sp_genmyxml+@pid=1" />然而如许做就必需还要创造一个xsl文献来把所赢得的截止变换成treeview不妨接收的情势,也即是说内里只能包括<treenodes>和<treenode>两种标志。另一种本领是径直沿用sql server 2k供给的for xml子句来实行这个功效。你不妨运用for xml子句的explicit吩咐来手动指定归来的xml中的档次汇合以及标志称呼。我本人写了一个例子,用的是sql server 2k自带的northwind数据库:select 1as tag,  null as parent, customers.companyname as [treenode!1!text], null as [treenode!2!text], nullas [treenode!2!nodedata]from customersunion allselect 2,  1, customers.companyname, orders.orderid, [order details].quantityfrom customers, orders,[order details]where customers.customerid = orders.customerid and [order details].orderid = orders.orderidorder by [treenode!1!text], [treenode!2!text]for xml explicit简直含意看sql server 的book online对for xml子句以及explicit吩咐的精细证明。咱们不妨开始创造一个叫作nodesource.aspx的文献,在这个文献中,运用sqlcommand的executexmlreader本领举行实行上头的sql 语句,归来一个xmlreader东西,把xmlreader东西的实质做为输入。而后指定一个treeview东西的treenodesrc属性到这个文献的url就不妨了。nodesource.aspx文献示比方下:public class nodesource : system.web.ui.page{private void page_load(object sender, system.eventargs e){string connectionstring = "server=server;uid=sa;pwd=;database=northwind";system.data.sqlclient.sqlconnection connection = new system.data.sqlclient.sqlconnection(connectionstring);system.data.sqlclient.sqlcommand command = new system.data.sqlclient.sqlcommand();command.connection = connection;command.commandtext = "getxml";//包括上述sql 语句的保存进程command.commandtype = system.data.commandtype.storedprocedure;system.data.sqlclient.sqldataadapter sa= new system.data.sqlclient.sqldataadapter(command);connection.open();system.xml.xmlreader xml = command.executexmlreader();xml.read();response.contenttype = "text/xml";response.output.write("<treenodes><treenode text='parent'>" + xml.readouterxml().replace("\"","'") + "</treenode></treenodes>");}结果,说一下对treeview webcontrol的发觉,这个东东在设定autopostback=false的功夫倒是还蛮好用的,然而即使树立autopostback=true,那么就会闪的利害,历次点击一个节点,城市革新一面,而后从新定位到某个节点。然而即使不设定autopostback=true,则没辙运用treeview控件本人带的三个事变:expand、collapse、selectedindexchanged。比拟烦恼。然而运用少许存户端的教本以及msxml差不离不妨实行不革新的treeview控件,那些等下次再说吧。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.