TreeView控件绑定数据库
1.在设计视图里面的代码
<form id="form1" runat="server">
<div>
<h1>两个表</h1>
<asp:TreeView ID="TreeView1" runat="server">
<HoverNodeStyle Font-Underline="true" ForeColor="Window" />
<NodeStyle Font-Names="Tahoma" Font-Size="8pt" ForeColor="Black" HorizontalPadding="2px" NodeSpacing="0px" VerticalPadding="2px"/>
<ParentNodeStyle Font-Bold="False" />
<SelectedNodeStyle BackColor="Red" Font-Underline="False" HorizontalPadding="0px" VerticalPadding="0px" />
</asp:TreeView>
<br />
<asp:Button ID="Button1" runat="server" Text="ShowTwoTable" OnClick="Button1_Click"/>
<br /><br /><hr />
<h1>一个表</h1>
<asp:TreeView ID="TreeView2" runat="server"></asp:TreeView>
<br />
<asp:Button ID="Button2" runat="server" Text="ShowOne" OnClick ="Button2_Click" />
</div>
</form>
2.后台代码:
两个关联表的显示
#region 两个表的显示
//根据获取的数据填充TreeView控件
private void PopulateTreeView(DataTable dtParent, int parentId, TreeNode treeNode)
{
foreach (DataRow row in dtParent.Rows)
{
TreeNode child = new TreeNode
{
Text = row["Name"].ToString(),
Value = row["Id"].ToString()
};
if (parentId == )
{
TreeView1.Nodes.Add(child);
DataTable dtChild = this.GetDataTableBySql("select Id,Name from VehicleSubType where VehicleId= " + child.Value);
PopulateTreeView(dtChild, int.Parse(child.Value), child);
}
else
{
treeNode.ChildNodes.Add(child);
}
}
} //根据sql语句从数据库中获取整个表的数据
private DataTable GetDataTableBySql(string sql)
{
DataTable dt = new DataTable();
string constr = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(sql))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
sda.SelectCommand = cmd;
sda.Fill(dt);
}
}
return dt;
}
} protected void Button1_Click(object sender, EventArgs e)
{
DataTable dt = this.GetDataTableBySql("select Id, Name from VechicleType ");
this.PopulateTreeView(dt, , null);
}
#endregion
一个表的显示:
#region 一个表的显示
protected void Button2_Click(object sender, EventArgs e)
{
PopulateMenu();
}
//use the linq to sql
MynodeDataContext db = new MynodeDataContext();
private void PopulateMenu()
{
List<NodeSubNode> allMenu = new List<NodeSubNode>();
allMenu = db.NodeSubNodes.ToList();
CreateTreeView(allMenu, , null);
} private void CreateTreeView(List<NodeSubNode> source, int parentID, TreeNode parentNode)
{
List<NodeSubNode> newSource = db.NodeSubNodes.Where(a => a.SubjectId.Equals(parentID)).ToList();
foreach (var i in newSource)
{
TreeNode newnode = new TreeNode(i.Name, i.Id.ToString());
if (parentNode == null)
{
TreeView2.Nodes.Add(newnode);
}
else
{
parentNode.ChildNodes.Add(newnode);
}
CreateTreeView(source, i.Id, newnode);
}
}
#endregion
显示效果:
More information:
http://dotnetawesome.blogspot.com/2013/11/how-to-bind-treeview-from-database.html
http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/navigation/treeview.aspx
TreeView控件绑定数据库的更多相关文章
- asp.net TreeView控件绑定数据库显示信息
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- C#之Winform中treeview控件绑定数据库
private DataSet ds; private SqlDataAdapter sqlDataAdapter1; private int maxnodeid; private void Form ...
- 040. asp.netWeb中TreeView控件绑定XML文件
xml文件格式: <?xml version="1.0" encoding="utf-8" ?> <sitemap title="进 ...
- C# Winform中的ComboBox控件绑定数据库项目作为列表内容
//初始化院区下拉列表,使用了Oracle数据库中的表项目 try { //string connString = "User=system;Password=manager;Data So ...
- 在DELPHI中用TreeView控件从数据库中动态装载信息
1.PInfo表结构ID VARCHAR(50)FullName VARCHAR(50)ParentID VARCHAR(50) 2.Unit文件unit Info; interface uses ...
- ASP.NET中的chart控件绑定SQL Server数据库
网上很多的chart控件的实例都没有绑定数据库,经过一番摸索后,终于实现了chart控件绑定数据库. 首先,在Visual Studio中建立一个网站,新建一个WebForm项目,名称为ChartTe ...
- HTTP模拟工具【C#/Winform源码】、Json绑定TreeView控件、使用了MetroModernUI、RestSharp、Dapper.Net、Newtonsoft.Json、SmartThreadPool这几个主要开源框架
HTTP模拟工具 开发语言:C#/Winform开发工具:Visual Studio 2017数据库: SQLite使用框架:界面-MetroModernUI Http请 ...
- WPF 将数据源绑定到TreeView控件出现界面卡死的情况
首先来谈一下实现将自定义的类TreeMode绑定到TreeView控件上的一个基本的思路,由于每一个节点都要包含很多自定义的一些属性信息,因此我们需要将该类TreeMode进行封装,TreeView的 ...
- C#端加载数据库,Combobox与Node控件绑定数据源demo示例
最近一直在做网页.用的js比较多,最近需要做一个C#相关的demo,一开始还有点不适应,写了几句有点感觉了 本篇博客的主要内容是C#怎么读取数据库文件里的数据以及相关控件如何绑定数据源,所做的Demo ...
随机推荐
- codeforces 632C. The Smallest String Concatenation 排序
题目链接 给出n个字符串, 将他们连在一起, 求连玩之后字典序最小的那种情况. 按a+b<b+a排序.... #include <iostream> #include <vec ...
- return和break的区别
/* Name:return和break的区别 Copyright: By.不懂网络 Author: Yangbin Date:2014年2月25日 02:13:22 Description:以下代码 ...
- QT完美转换特殊字符的大小写
Util::ShowMessage(QString::fromUtf8("ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØŒŠþÙÚÛÜÝŸ€")); Util::ShowMess ...
- Jmeter 笔记
Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可以用于测试静态和动态资源例如静态文件. ...
- SPOJ 7258 Lexicographical Substring Search(后缀自动机)
[题目链接] http://www.spoj.com/problems/SUBLEX/ [题目大意] 给出一个字符串,求其字典序排名第k的子串 [题解] 求出sam上每个节点被经过的次数,然后采用权值 ...
- iOS 检测更新版本
获取app版本URL 数字是appID,在开发者账号app信息中可以找到 #define APP_URL @"http://itunes.apple.com/cn/lookup?id=116 ...
- TRIZ系列-创新原理-21-高速通过原理
高速通过原理,有的书也译为"降低有害作用的时间"原理,我比較倾向于叫高速通过原理,这个概念下,适用范围比較大些.高速通过原理的详细描写叙述例如以下:1)很高速的实施有害的或者有危急 ...
- list根据所存对象属性排序
比如有个list,里面存的是一个个对象,对象有个list属性,其值可以是字符串和数字. private void getSortList(List<AclResource> newList ...
- 我们在 web 应用开发过程中经常遇到输出某种编码的字 符, 如 iso8859-1 等, 如何输出一个某种编码的字符串?
public String translate (String str) { String tempStr = ""; try { tempStr = new String(str ...
- Java 网络编程(三) 创建和使用URL访问网络上的资源
链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/09/2951877.html 创建和使用URL访问网络上的资源 URL(Uniform Reso ...