现在有teacher和student两个表(一个老师可以带多个老师和多个学生,每个老师和学生只能有一个老师),teacher表有个字段是parentteacherid,student有个字段是teacherid,我想问如何实现一种treeview树形:展开老师节点能显示出这个老师带的老师和学生。各位帮帮忙,最好能给出代码,急用,谢谢
解决方案 »
- 截取字符串问题
- 各位请教一下,在线编辑器FCKeditor1不可用的属性是怎么设置的呢?本姑娘在此谢过!
- 怎樣把这段代码修改嵌套到datalist里面?
- 未能正确加载包 lanaguage package 来者有分
- 如何在datagrid运行时,显示出首页和末页
- 请教 RSS 怎么判断有一个新的文章发表了???
- FCKEditor不能插图片!!!!
- Infragistics UltraWebTab ContentPane的TargetUrl是不是不能带有参数的URL?
- 关于数据绑定Grid上显示对应文字的方法?
- 请问.net中可否调用oracle Report开发的报表?
- ASP.NET 页面怪现象 问什么问题了
- 上传中文名视频不显示
on student.teacherid =teacher. parentteacherid
然后低归这个表
{
public Form1()
{
InitializeComponent(); TreeView tv = new TreeView();
tv.AfterSelect += new TreeViewEventHandler(tv_AfterSelect);
tv.Dock = DockStyle.Fill;
this.BuildTree(tv.Nodes, 0);
this.Controls.Add(tv);
} private void tv_AfterSelect(object sender, TreeViewEventArgs e)
{
// 选择节点后,获取当前节点的信息
// 你可以将下列信息赋给你对应的控件
DataRow row = (DataRow)e.Node.Tag; Int32 Id = (Int32)row["Id"];
Int32 ParentId = (Int32)row["ParentId"];
String Name = (String)row["Name"];
} private DataTable fSampleDataSource;
public DataTable SampleDataSource
{
get
{
if (fSampleDataSource == null)
{
// 这里构造一个 DataTable 如果是从数据库获取可以将这部分代码改为从数据获取的代码
fSampleDataSource = new DataTable();
fSampleDataSource.Columns.Add("Id", typeof(int)); // 节点 ID
fSampleDataSource.Columns.Add("ParentId", typeof(int)); // 父节点
fSampleDataSource.Columns.Add("Name", typeof(string)); // 节点名称 fSampleDataSource.Rows.Add(new object[] { 1, 0, "根目录" });
fSampleDataSource.Rows.Add(new object[] { 2, 1, "一级目录A" });
fSampleDataSource.Rows.Add(new object[] { 3, 1, "一级目录B" });
fSampleDataSource.Rows.Add(new object[] { 4, 1, "一级目录C" }); fSampleDataSource.Rows.Add(new object[] { 5, 2, "二级目录A" });
fSampleDataSource.Rows.Add(new object[] { 6, 2, "二级目录B" });
} return fSampleDataSource;
}
} /// <summary>
/// 创建目录和文件树
/// </summary>
/// <param name="fNodes"></param>
/// <param name="fPath"></param>
public void BuildTree(TreeNodeCollection fNodes, Int32 fParentId)
{
foreach (DataRow row
in this.SampleDataSource.Select(String.Format("ParentId = {0}", fParentId)))
{
TreeNode node = new TreeNode();
node.Text = row["Name"].ToString();
node.Tag = row;
// 递归创建子节点
this.BuildTree(node.Nodes, (Int32)row["Id"]);
fNodes.Add(node);
}
}
}
}