最近做了一个图书馆管理系统,其中要实现中图法分类号查询,因为初学asp ,感觉还有点难度,

第一步:数据库文件

第二步 向界面中拖进TreeView控件

第三步添加事件

下面是cs文件代码

 //TreeView绑定数据库
public void BindDataBase(string sql){
string str = System.Configuration.ConfigurationManager.
ConnectionStrings["conn"].ToString();
SqlConnection connection = new SqlConnection(str);
try
{
connection.Open();
}
catch (Exception ex)
{
Response.Write(ex.Message);
} SqlCommand sqlCmd = new SqlCommand(sql, connection); SqlDataAdapter custDA = new SqlDataAdapter();
custDA.SelectCommand = sqlCmd;
DataSet ds = new DataSet();
custDA.Fill(ds, "BookType"); TreeNode root = new TreeNode("中图法分类");//新建根节点
this.Kind_Tree.Nodes.Add(root);
for (int i = ; i < ds.Tables["BookType"].Rows.Count; i++)
{
string parent=ds.Tables["BookType"].Rows[i][].ToString();//获取数据库中标记节点
if(parent=="root"){//判断是否是根节点下的子节点
TreeNode tree2 = new TreeNode(ds.Tables["BookType"].Rows[i][].ToString()
+ ds.Tables["BookType"].Rows[i][].ToString());//创建一级子节点
root.ChildNodes.Add(tree2);
/*for (int j = 0; j < ds.Tables["BookType"].Rows.Count; j++)
{
string myparent = ds.Tables["BookType"].Rows[i][2].ToString();
if (myparent == tree2.Text.ToString())
{
TreeNode tree3 = new TreeNode(ds.Tables["BookType"].Rows[i][0].ToString() + ds.Tables["BookType"].Rows[i][1].ToString());
tree2.ChildNodes.Add(tree3);
}
}*/
}
}
for (int j = ; j < root.ChildNodes.Count; j++)
{
TreeNode rootChild = root.ChildNodes[j];//获取根节点下的子节点
for (int k = ; k < ds.Tables["BookType"].Rows.Count; k++)
{
string parent = ds.Tables["BookType"].Rows[k][].ToString();//获取数据库中标记节点 if (parent == rootChild.Text.ToString().Substring(,))//判断是否是二级子节点
{
TreeNode tree3 = new TreeNode(ds.Tables["BookType"].Rows[k][].ToString()
+"-"+ ds.Tables["BookType"].Rows[k][].ToString());//新建二级子节点
rootChild.ChildNodes.Add(tree3);
}
}
} //TreeNode rootChil = root.ChildNodes[0];
// Response.Write(rootChil.Text.ToString().Substring(0,1));
connection.Close();
} //TreeView的响应事件 protected void Kind_Tree_SelectedNodeChanged(object sender, EventArgs e)
{
string s = Kind_Tree.SelectedNode.ValuePath.ToString();
char[] spitChar = new char[] { '/' };
string[] nodeValues = s.Split(spitChar);
string sql = null;
if (nodeValues.Length == )
{
string typeId = nodeValues[].Substring(, );
sql = "select 图书编号,出版社,作者,书名,图书ISBN号,分类 from bookTable d, BookType t where t.BoType_id like '"
+ typeId + "%' and t.BoType_name=d.分类";
}
else {
char[] spitChar2 = new char[] { '-' };
string[] typeId2 = nodeValues[].Split(spitChar2);
sql = "select 图书编号,出版社,作者,书名,图书ISBN号,分类 from bookTable d, BookType t where t.BoType_id ='"
+ typeId2[] + "' and t.BoType_name=d.分类";
} SqlDataSource1.SelectCommand = sql;
Response.Write(nodeValues.Length);
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) { string sql = "select * from BookType";
BindDataBase(sql);
Kind_Tree.ShowLines = true;
Kind_Tree.ExpandDepth = ; }
}

显示时,因为节点的文本太长,如果要设置自动换行,还需要设置TreeView的属性

NodeWrap = true

asp .Net TreeView实现数据绑定和事件响应的更多相关文章

  1. 【转载】Asp.Net中应用程序的事件响应次序

    Asp.Net应用程序事件响应次序是指Application事件的相应次序,涉及到的事件包括Application_Start事件.BeginRequest事件.AuthenticateRequest ...

  2. 转:asp.net TreeView CheckChanged 事件浅谈

    http://blog.csdn.net/xiage/article/details/5128755 在开发中经常可以碰到类似的问题: 想通过一个树父节点的TreeNodeCheckChanged 事 ...

  3. ASP.NET -- WebForm -- 页面生命周期事件

    ASP.NET -- WebForm --  页面生命周期事件在页生命周期的每个阶段中,页将引发可运行您自己的代码进行处理的事件. 1. PreInit: 使用该事件来执行下列操作: 检查 IsPos ...

  4. .net中的TreeView的数据绑定与EasyUi_tree的数据绑定

    昨天看到了.net中的TreeView,学习了一波TreeView的数据绑定,联想到EasyUi中的Tree的数据,觉得里面的逻辑差不多,就总结了一下两者的数据绑定. 前端页面和必要的JS如下 < ...

  5. asp.net学习之 数据绑定控件--List数据绑定控件

    原文:asp.net学习之 数据绑定控件--List数据绑定控件 List控件(如 CheckBoxList.DropDownList.ListBox 和 RadioButtonList 类)继承自L ...

  6. asp.net学习之数据绑定控件、数据源控件概述

    原文:asp.net学习之数据绑定控件.数据源控件概述 1.asp.net数据绑定控件分为三大类,每个类分别进行详细:      ● 列表式数据绑定控件: 列表式数据绑定控件常用来在一个表格内的一个字 ...

  7. asp.net学习之 数据绑定控件--表格绑定控件

    原文:asp.net学习之 数据绑定控件--表格绑定控件     数据绑定 Web 服务器控件是指可绑定到数据源控件,以实现在 Web 应用程序中轻松显示和修改数据的控件.数据绑定 Web 服务器控件 ...

  8. ASP.Net 自定义HttpModule注册管道事件

    背景: 一个请求在到达处理器时 可能需要做很多重复的工作 比如使用固定的算法推算出用户id 角色   如果在应用程序各处做重复解析 会产生大量代码冗余 还有能想到的诸如记录访问者 应用日志 统计流量 ...

  9. ASP.NET机制详细的管道事件流程(转)

    ASP.NET机制详细的管道事件流程 第一:浏览器向服务器发送请求. 1)浏览器向iis服务器发送请求网址的域名,根据http协议封装成请求报文,通过dns解析请求的ip地址,接着通过socket与i ...

随机推荐

  1. ZK 页面间参数传递

    1.execution.sendRedirect(url) 当使用方法execution.sendRedirect(url)进行页面跳转时,在url中添加参数:url?test=5: 跳转页面获取参数 ...

  2. php 跨服务器ftp移动文件

    $ftp_server = "120.25.1.1";$ftp_user_name = "p1111";$ftp_user_pass = "psa12 ...

  3. 改变spring-servlet.xml名字和默认位置

    如何我们在web.xml定义: <servlet> <servlet-name>spring</servlet-name> <servlet-class> ...

  4. 解决Android Studio Gradle Build Running慢的问题

    Android Studio方便好用,但是Android Studio Gradle Build Running很慢 解决方法: C:\Users\你的用户名\.gradle 目录下新建一个文件名为 ...

  5. java工程师 学习路线图

  6. VirtualBox Ubuntu Server 16.04 手动设置 网络(IP, DNS, 路由)

    1. VirtualBox 设置全局网络 在virtualBox点击菜单管理->全局管理 配置NAT网络 参考下图配置, 依次点击相应的按钮并设置网络(其中DHCP任意, 将来我们都会使用固定I ...

  7. ArcGIS Server,rest路径输入要素json 格式描述

    以下内容只测试了简单线, 在ArcGIS Server 的rest路径下可以对服务进行操作,如Query等,这些操作可以输入json 格式要素描述或运行得到即输出json格式要素描述. 如博客:htt ...

  8. 给Source Insight做个外挂系列之一--发现Source Insight

    一提到外挂程序,大家肯定都不陌生,QQ就有很多个版本的去广告外挂,很多游戏也有用于扩展功能或者作弊的工具,其中很多也是以外挂的形式提供的.外挂和插件的区别在于插件通常依赖于程序的支持,如果程序不支持插 ...

  9. C++笔记----构造函数与析构函数(三)

    1.构造函数初始化列表 推荐在构造函数初始化列表中进行初始化 构造函数的执行分为两个阶段:初始化段. 普通计算段 2.对象成员及其初始化 #include<iostream> using ...

  10. html5 app开发,你知道多少?

    随着大量新生移动设备的兴起,改变了互联网的未来,html5技术为开发者提供了一个跨平台的移动app开发方案,并且该方案具有很好的扩展性和灵活性,但就国内使用html5开发app应用技术来讲,还是有欠缺 ...