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 ...
随机推荐
- Android 汉字转拼音之JNI篇
package com.tool.hz2py; import android.os.Bundle; import android.app.Activity; import android.view.M ...
- spoj 1557 GSS3 - Can you answer these queries III 线段树
题目链接 给出n个数, 2种操作, 一种是将第x个数改为y, 第二种是询问区间[x,y]内的最大连续子区间. 开4个数组, 一个是区间和, 一个是区间最大值, 一个是后缀的最大值, 一个是前缀的最大值 ...
- html字符实体对照表
- 转:CI伪静态化
去掉php框架CI默认url中的index.php 2010-03-17 17:33:07| 分类: php框架ci |字号 订阅 CI默认的rewrite url中是类似这样的,例如你的CI根 ...
- 使用自定义脚本扩展程序自动执行 VM 自定义任务
在 Build 开发者大会上推出VM 扩展程序的其中一个称为"自定义脚本扩展程序",它支持 PowerShell.如果这是您第一次访问这些博客,可能需要查看以前的博客,请单击 ...
- 解决Windows 程序界面闪烁问题的一些经验
原帖地址:http://blog.joycode.com/yaodong/archive/2004/11/26/39764.aspx 一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化 ...
- Speex manul中文版
Speex manul中文版 在VOIP的音频算法中,回音处理已经成为一个关系通话质量的主要问题. 回声的产生在IP网络主要有两种:1.声学回声2.电路回声 声学回声主要又分成以下几种:a ) 直 ...
- PendingIntent详解
Intent是一个意图,一个描述了想要启动一个Activity.Broadcast或是Service的意图.它主要持有的信息是它想要启动的组件(Activity.Broadcast或是Service) ...
- 安卓中onBackPressed ()方法的使用
一.onBackPressed()方法的解释 这个方法放在 void android.app.Activity.onBackPressed() 在安卓API中它是这样解释的: public void ...
- 在C语言中基本数据类型所占的字节数
基本数据类型所占的字节数其实跟C语言本身没有太大的关系,它取决于编译器的位数,下面这张表说明了不同编译器下基本数据类型的长度: 32位编译器中各基本类型所占字节数: 注:对于32位的编译器,指针变量的 ...