ArrayList list=new ArrayList();
DataSet ds=SqlHelper.ExecuteDataset(sqlcon,CommandType.StoredProcedure,"CMRC_ShowAllProducts");//取得DATASET
DataView dv=new DataView();
dv.Table=ds.Tables[0];
DataRow[] dr=dv.Table.Select("","CategoryId");
for(int i=0;i<dr.Length;i++)
{
if(!list.Contains(dr[i]["CategoryId"])&&(dr[i]["CategoryId"]!=null))
list.Add(dr[i]["CategoryId"]);
}
for(int i=0;i<list.Count;i++)
{
TreeNodeCollection Nds=new TreeNodeCollection();
dv.RowFilter="CategoryId='"+list[i]+"'";
foreach(DataRowView drv in dv)
{
TreeNode Tnode=new TreeNode();
Tnode.ID=drv["ProductId"].ToString();
Tnode.Text=drv["ModelName"].ToString();
Tnode.CheckBox=true;
Nds.Add(Tnode);
}//其实我这里没有用递归 因为只显示两级树
但是程序运行后什么都每有??????????????? }
我再问稳TREEVIEW.NODES和TreeNodeCollection 是什么关系 有什么区别
DataSet ds=SqlHelper.ExecuteDataset(sqlcon,CommandType.StoredProcedure,"CMRC_ShowAllProducts");//取得DATASET
DataView dv=new DataView();
dv.Table=ds.Tables[0];
DataRow[] dr=dv.Table.Select("","CategoryId");
for(int i=0;i<dr.Length;i++)
{
if(!list.Contains(dr[i]["CategoryId"])&&(dr[i]["CategoryId"]!=null))
list.Add(dr[i]["CategoryId"]);
}
for(int i=0;i<list.Count;i++)
{
TreeNodeCollection Nds=new TreeNodeCollection();
dv.RowFilter="CategoryId='"+list[i]+"'";
foreach(DataRowView drv in dv)
{
TreeNode Tnode=new TreeNode();
Tnode.ID=drv["ProductId"].ToString();
Tnode.Text=drv["ModelName"].ToString();
Tnode.CheckBox=true;
Nds.Add(Tnode);
}//其实我这里没有用递归 因为只显示两级树
但是程序运行后什么都每有??????????????? }
我再问稳TREEVIEW.NODES和TreeNodeCollection 是什么关系 有什么区别
解决方案 »
- .net销毁一个进程。
- js中动态加载css文件,由于css还没有加载完,造成js取不到值,造成错误怎么办?
- 关于checkbox批量删除的问题
- asp.nte关于线程的问题
- DIV+CSS做.net网站的困惑???
- 请教如何获取一个页面的高度和宽度(象素)
- freetextbox中文化
- 有类似FreeTextBox这样的控件吗?上面有增加图片,flash等功能!
- 一个普通但是很重要的问题
- 一个quickstate中的例子,看了很久的帮助也没弄懂其意思,麻烦懂的帮忙解释一下好么?谢谢!
- 请问javascript能否清空asp.net中的session,如果不能那么用什么呢?是否可以调用asp.net中的函数来清空服务器端的session
- 如何改变项目文件的存放路径?
TREEVIEW.NODES 就是treeNodeCollection实例关系就是 类(Class) 和 类实例(instance) 的关系
区别?!不是同一类事务没法比较
node1
node11
node12
node111
node112
node113
node13
node2
node3
你上面的程序思想错误,主要在对treewiew的理解上,需要说明的是,不要动态创建treewiew,应该把treeview拖到页面上,然后再通过ID对它控制.比如你的ID是Treeview1,那么:
TreeNode Tnode=new TreeNode(); //(1)
Tnode.ID=你的值
Tnode.Text=你的值
treeview1.Add(Tnode);
下次在对treeview1插入的是子节点,不能每次都创建node,你这样写是错的(TreeNodeCollection Nds=new TreeNodeCollection();),第二次在插入接点时,应该用(1)处的Tnode.不然你每次都创建
程序是对的,但你每次创建的node都没有关系.当然就显示不出来了.
你照次思路,重新做,如再有问题在发上来 ~~
TreeNode Tnode1=new TreeNode();
Tnode.ID=你的值;
Tnode.Text=你的值;
treeview1.Add(Tnode1); //一级接点
TreeNode Tnode11=new TreeNode();
Tnode.ID=你的值;
Tnode.Text=你的值;
Tnode1.Add(Tnode11);//二级接点
这是只有一个一级接点,一个子接点的思路.如果有很多接点,那么就要递归.