ASPNET 进阶TreeView控件学习.docx

上传人:b****6 文档编号:6386993 上传时间:2023-01-05 格式:DOCX 页数:17 大小:43.25KB
下载 相关 举报
ASPNET 进阶TreeView控件学习.docx_第1页
第1页 / 共17页
ASPNET 进阶TreeView控件学习.docx_第2页
第2页 / 共17页
ASPNET 进阶TreeView控件学习.docx_第3页
第3页 / 共17页
ASPNET 进阶TreeView控件学习.docx_第4页
第4页 / 共17页
ASPNET 进阶TreeView控件学习.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

ASPNET 进阶TreeView控件学习.docx

《ASPNET 进阶TreeView控件学习.docx》由会员分享,可在线阅读,更多相关《ASPNET 进阶TreeView控件学习.docx(17页珍藏版)》请在冰豆网上搜索。

ASPNET 进阶TreeView控件学习.docx

ASPNET进阶TreeView控件学习

【ASP.NET进阶】TreeView控件学习

这几天上班没事做,也不好打酱油,学点没接触过的新东西吧,基本了解了下TreeView控件。

TreeView控件用于在树结构中显示分层数据,例如目录或文件目录等。

下面看代码吧:

1.效果图

 

 

2.静态数据方式(即在页面上使用标签

TreeNode>)

<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="TreeViewTest.aspx.cs"Inherits="Yc_TestS.TreeViewTest"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:

//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

//www.w3.org/1999/xhtml">

TreeView

TreeViewID="treeT"runat="server">

TreeNodeNavigateUrl="#"Text="城市"Expanded="True">

TreeNodeNavigateUrl="#"Text="北京市">

TreeNode>

TreeNodeNavigateUrl="#"Text="上海市">

TreeNode>

TreeNodeNavigateUrl="#"Text="天津市">

TreeNode>

TreeNodeNavigateUrl="#"Text="重庆市">

TreeNode>

TreeNodeNavigateUrl="#"Text="湖北省">

TreeNodeNavigateUrl="#"Text="武汉市">

TreeNode>

TreeNodeNavigateUrl="#"Text="黄冈市">

TreeNode>

TreeNodeNavigateUrl="#"Text="荆州市">

TreeNode>

TreeNodeNavigateUrl="#"Text="武穴市">

TreeNode>

TreeNodeNavigateUrl="#"Text="十堰市">

TreeNode>

TreeNodeNavigateUrl="#"Text="黄石市">

TreeNode>

TreeNode>

TreeNodeNavigateUrl="#"Text="河北省">

TreeNodeNavigateUrl="#"Text="石家庄市">

TreeNode>

TreeNodeNavigateUrl="#"Text="唐山市">

TreeNode>

TreeNode>

TreeNodeNavigateUrl="#"Text="山西省">

TreeNodeNavigateUrl="#"Text="太原市">

TreeNode>

TreeNodeNavigateUrl="#"Text="大同市">

TreeNode>

TreeNode>

TreeNode>

TreeView>

 

3.前台数据源绑定方式

a.xml数据

xmlversion="1.0"encoding="utf-8"?

>

 

b.前台页面(这里绑定了Xml的数据源)

<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="TreeViewTest.aspx.cs"Inherits="Yc_TestS.TreeViewTest"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:

//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

//www.w3.org/1999/xhtml">

TreeView

<%--TreeView控件的DataSourceID属性指定数据源控件源ID。

--%>

TreeViewID="treeT"runat="server"DataSourceID="XmlDataSource1">

TreeView>

XmlDataSourceID="XmlDataSource1"runat="server"DataFile="~/Xml/Area.xml">

XmlDataSource>

 

c.后台代码

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Web;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.Security;

usingSystem.Data;

usingYc_TestS.BaseClass;

namespaceYc_TestS

{

publicpartialclassTreeViewTest:

System.Web.UI.Page

{

protectedvoidPage_Load(objectsender,EventArgse)

{

/**

*TreeNodeBinding类在TreeView控件中定义数据项与该数据项绑定到的节点之间的关系。

*该类的DataMember属性指定在节点显示的数据源对应XML的节点。

*ValueField属性对应TreeNode对象的Value属性。

*TreeNodeBinding类的Text属性指定向用户显示的文本,如果该属性没有指定,则默认与ValueField属性相同。

**/

this.treeT.ShowLines=false;//显示连接子节点和父节点之间的线条

TreeNodeBindingArea=newTreeNodeBinding();

Area.DataMember="Area";//指定绑定的成员

Area.ValueField="cAreaName";//取值的字段

this.treeT.DataBindings.Add(Area);

TreeNodeBindingProvince=newTreeNodeBinding();

Province.DataMember="Province";//添加与"省份"绑定

Province.ValueField="cAreaName";

this.treeT.DataBindings.Add(Province);

TreeNodeBindingCity=newTreeNodeBinding();

City.DataMember="City";//添加与"城市"绑定

City.ValueField="cAreaName";

this.treeT.DataBindings.Add(City);

}

}

}

 

4.后台数据库数据填充方式

a.数据库数据

b.前台页面

<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="TreeViewTest.aspx.cs"Inherits="Yc_TestS.TreeViewTest"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:

//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

//www.w3.org/1999/xhtml">

TreeView

functionshow(msg){

alert(msg);

}

TreeViewID="treeT"runat="server">

TreeView>

 

c.后台代码

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Web;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.Security;

usingSystem.Data;

usingYc_TestS.BaseClass;

namespaceYc_TestS

{

publicpartialclassTreeViewTest:

System.Web.UI.Page

{

protectedvoidPage_Load(objectsender,EventArgse)

{

AddTree(0,null);

}

privatevoidAddTree(intPid,TreeNodePNode)

{

stringsqlStr="SELECTItem_id,Item_name,Parent_IDFROMPara_item";

DataTabledt=YSqlHelper.ExecuteQuery(sqlStr,CommandType.Text);

if(dt.Rows.Count>0)

{

DataViewdv=newDataView(dt);

//过滤ParentID,得到当前的所有子节点ParentID为父节点ID

dv.RowFilter="[Parent_ID]="+Pid;

//循环递归

foreach(DataRowViewRowindv)

{

//声明节点

TreeNodeNode=newTreeNode();

//绑定超级链接

Node.NavigateUrl=String.Format("javascript:

show('{0}')",Row["Item_Name"].ToString());

//开始递归

if(PNode==null)

{

//添加根节点

Node.Text=Row["Item_Name"].ToString();

treeT.Nodes.Add(Node);

Node.Expanded=true;//节点状态展开

AddTree(Int32.Parse(Row["Item_ID"].ToString()),Node);//再次递归

}

else

{

//添加当前节点的子节点

Node.Text=Row["Item_Name"].ToString();

PNode.ChildNodes.Add(Node);

Node.Expanded=true;//节点状态展开

AddTree(Int32.Parse(Row["Item_ID"].ToString()),Node);//再次递归

}

}

}

}

}

}

 

d.配置文件

xmlversion="1.0"?

>

--

有关如何配置ASP.NET应用程序的详细消息,请访问

-->

 

e.两个助手类 

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Web;

usingSystem.IO;

usingSystem.Security.Cryptography;

usingSystem.Text;

namespaceYc_TestS.BaseClass

{

publicclassEntryCode

{

///

加密

publicstaticstringEncodeCode(stringstr)

{

stringkey="david.yc";

DESCryptoServiceProviderprovider=newDESCryptoServiceProvider();

provider.Key=Encoding.ASCII.GetBytes(key.Substring(0,8));

provider.IV=Encoding.ASCII.GetBytes(key.Substring(0,8));

byte[]bytes=Encoding.GetEncoding("GB2312").GetBytes(str);

MemoryStreamstream=newMemoryStream();

CryptoStreamstream2=newCryptoStream(stream,provider.CreateEncryptor(),CryptoStreamMode.Write);

stream2.Write(bytes,0,bytes.Length);

stream2.FlushFinalBlock();

StringBuilderbuilder=newStringBuilder();

foreach(bytenuminstream.ToArray())

{

builder.AppendFormat("{0:

X2}",num);

}

stream.Close();

returnbuilder.ToString().Trim();

}

///

Des解密GB2312

publicstaticstringDecodeCode(stringstr)

{

stringkey="david.yc";

DESCryptoServiceProviderprovider=newDESCryptoServiceProvider();

provider.Key=Encoding.ASCII.GetBytes(key.Substring(0,8));

provider.IV=Encoding.ASCII.GetBytes(key.Substring(0,8));

byte[]buffer=newbyte[str.Length/2];

for(inti=0;i<(str.Length/2);i++)

{

intnum2=Convert.ToInt32(str.Substring(i*2,2),0x10);

buffer[i]=(byte)num2;

}

MemoryStreamstream=newMemoryStream();

CryptoStreamstream2=newCryptoStream(stream,provider.CreateDecryptor(),CryptoStreamMode.Write);

stream2.Write(buffer,0,buffer.Length);

stream2.FlushFinalBlock();

stream.Close();

returnEncoding.GetEncoding("GB2312").GetString(stream.ToArray()).Trim();

}

}

}

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Web;

usingSystem.Data;

usingSystem.Data.SqlClient;

usingSystem.Configuration;

namespaceYc_TestS.BaseClass

{

publicclassYSqlHelper

{

privatestaticstringconnectionString=EntryCode.DecodeCode(ConfigurationManager.AppSettings["sqlStr"]);//获取解密后的数据库连接字符串

///

执行不带参数的增删改SQL语句或存储过程

///增删改SQL语句或存储过程

///命令类型

///受影响的行数

publicstaticintExecuteNonQuery(stringcmdText,CommandTypect)

{

intres=0;

using(SqlConnectionconn=newSqlConnection(connectionString))

{

try

{

conn.Open();

using(SqlCommandcmd=newSqlCommand(cmdText,conn))

{

cmd.CommandType=ct;

res=cmd.ExecuteNonQuery();

}

}

catch

{

}

finally

{

if(conn.State==ConnectionState.Open)

{

conn.Close();

}

}

}

returnres;

}

///

执行带参数的增删改SQL语句或存储过程

///增删改SQL语句或存储过程

///命令类型

///受影响的行数

publicstaticintExecuteNonQuery(stringcmdText,SqlParameter[]paras,CommandTypect)

{

intres=0;

using(SqlConnectionconn=newSqlConnection(connectionString))

{

try

{

conn.Open();

using(SqlCommandcmd=newSqlComm

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1