如题,我一个表tb,
字段
date1, serialno
2010-11-07 a001
2010-11-07 a002
2010-11-08 a003树形大概是这样的: 2010-11-07
a001
a002
2010-11-08
a003我用的是VS2010
字段
date1, serialno
2010-11-07 a001
2010-11-07 a002
2010-11-08 a003树形大概是这样的: 2010-11-07
a001
a002
2010-11-08
a003我用的是VS2010
解决方案 »
- 关于可空类型是否为空的判断
- odbc方式操作sybase奇怪的问题(急!),能解决者高分重谢(另开贴给分)!
- 怎样改变DataTable各列的顺序?
- C# 十六进制的Unicode字符串 转换为汉字
- AJAX htmlfile: 未知的运行时错误(求指导)
- [求助]新人刚到,请教大家一个问题,读取数据库的进度条显示!
- treeView问题。
- Visual Web Developer 2005 什么时候出正式版?
- XSL显示的问题。是否可以进行页面传值呢?请赐教!
- 正则表达式筛选数据(C#)
- 简单的委托问题,请高手解答
- ExecuteReader: Connection 属性尚未初始化。谁帮我解决下
list<string>dlst=new list<string>();
dlst=lst.select(n=>n.date1.tostring.trim()).distinct().tolist();
foreach(string a in dlst)
{
treenode anode=new treenode();
anode.text=a;
foeach(DT d in lst)
{
if(d.date1.tostring().trim()==a)
{
treenode snode=new treenode();
snode.text=d.serialno;
anode.subnode.add(snode);
}
}
tree1.node.add(anode);
}
大概就这样了.
select distinct date1 from tb
语句返回的集合,在treeView1的根节点的子节点的select事件中获得该节点的值
然后将该节点的子节点设为
select serialno from tb where datel='该节点的值'
这条语句的集合
{ DataSet ds = sqlConnDb.query("select distinct date1 from tb "); {
DataTable tempDataTable = ds.Tables [0].Copy(); // 将组织结构表另存一份为tempDataTable
DataView viewSetOrgInfo = new DataView(tempDataTable);
// 将数据集中的所有记录逐个根据他们之间的关节系添加到权型表中去.
if (viewSetOrgInfo.Count > 0)
{
foreach (DataRowView myRow in viewSetOrgInfo)
{
string strEnterpriseName = myRow["date1"].ToString().Trim();
this.treeView1.Nodes.Add(new TreeNode(strEnterpriseName)); // 此处是添加第一个节点
PopulateTreeView(strEnterpriseName, treeView1.Nodes[0], myRow); // 调用自定义方法,该方法会递归添加所有子节点
treeView1.SelectedNode = treeView1.Nodes[0]; // 选中第一个节点
}
}
} /// <summary>
/// 根据输入的节点的信息,递归调用,最终添加所有的节点
/// </summary>
/// <param >指定节点的本</param>
/// <param >指定它所属的父节点.</param>
/// <param >父节点所在的DataRowView</param>
private void PopulateTreeView(string parentPart, TreeNode parentNode, DataRowView parentRow)
{
DataSet ds = sqlConnDb.query("select serialno from tb where date1='"+parentRow["date1"].ToString().Trim() + "'" );
string strEnterpriseName = "";
DataTable tempDataTable = tblSetOrgInfo.Copy();
DataView viewSetOrgInfo = new DataView(tempDataTable);
// 筛选获得当前传递过来的节点的子项,并将其添加到树形图中
// (通过判断方法凡是paretnIndex等于传递过来的节点的absIndex的,就是该节的子项
/// viewSetOrgInfo.RowFilter = "ParentIndex = '" + parentRow["AbsIndex"].ToString().Trim() + "'";
// 递归的添加每一个节点的所有子节点
foreach (DataRowView myRow in viewSetOrgInfo)
{
strEnterpriseName = myRow["serialno"].ToString().Trim();
TreeNode myNode = new TreeNode(strEnterpriseName);
parentNode.Nodes.Add(myNode);
// 函数递归调用,将所有节点按顺序添加完毕
}
}我这个做了一个,可是得不到我想要的
2010-11-07
a001
a002
a003
2010-11-08