treeview递归遍历问题,代码看不太懂(我是新手)

问题描述

publicpartialclassSortTree:System.Web.UI.UserControl{//privateinti;DataTabletable1;TreeNodetrNewNode;WebServicewebService=newWebService();protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){stringstrSql="Select*Fromz_GoodsType;";table1=webService.ExcuteSelect(strSql);//获得所有的类型的数据表foreach(DataRowdrRowintable1.Rows)//对数据表中的每一行{if(drRow["Type_fid"].ToString()=="0")//当它为最高一级{trNewNode=newTreeNode(drRow["Type_name"].ToString(),drRow["Type_typeID"].ToString());//新建节点trNewNode.SelectAction=TreeNodeSelectAction.Select;//设置节点的选择动作this.treeSort.Nodes.Add(trNewNode);//添加节点if(drRow["Type_haveChild"].ToString()=="y")//判断是否有字节点{DataTablechildTable=table1.Clone();//如果有,则新建一个同样结构的数据表foreach(DataRowrowintable1.Rows)//得到它的字节点列表{if(row["Type_fid"].ToString()==drRow["Type_typeID"].ToString()){DataRownewRow=childTable.NewRow();newRow.ItemArray=row.ItemArray;childTable.Rows.Add(newRow);}}Make_ChildNode(trNewNode,childTable);//递归}}}}}protectedvoidMake_ChildNode(TreeNodenode,DataTabledtTable){foreach(DataRowdrRowindtTable.Rows)//对字节点数据表{trNewNode=newTreeNode(drRow["Type_name"].ToString(),drRow["Type_typeID"].ToString());//新建节点trNewNode.SelectAction=TreeNodeSelectAction.Select;//设置节点的选择动作node.ChildNodes.Add(trNewNode);//添加节点if(drRow["Type_haveChild"].ToString()=="y")//判断是否有字节点{DataTablechildTable=table1.Clone();//如果有,则新建一个同样结构的数据表foreach(DataRowrowintable1.Rows)//得到它的字节点列表{if(row["Type_fid"].ToString()==drRow["Type_typeID"].ToString()){DataRownewRow=childTable.NewRow();newRow.ItemArray=row.ItemArray;childTable.Rows.Add(newRow);}}Make_ChildNode(trNewNode,childTable);//继续递归}}}}代码注释的太少或者很多没注释,我看不懂。treeview遍历一个产品数据表Type_fid字段是该产品的父类型号Type_typeID字段是产品id,Type_name字段是产品名称Type_haveChild字段是产品有无子节点ExcuteSelect()是已经建立好的返回datatable类型的函数最好能详细解释一下,因为我是新手,上面很多都不是很懂,越详细越好.比如,this.treeSort.Nodes.Add(trNewNode);//添加节点我认为新建节点了节点不就是等于添加节点吗?但我知道我的想法是错误的如果有子节点,为什么要克隆一个同样结构的数据表?newRow.ItemArray=row.ItemArray;这句是干吗用的,有人说是设置新克隆的这张表的列的字段的,请详细说明,同时,如果确实是设置字段的,那么既然都克隆了一个一样的表了,新表应该和原来的表是一样的啊,干吗还要再设置字段呢,不多余吗?在Make_ChildNode()中,row["Type_fid"].ToString()==drRow["Type_typeID"].ToString()这一句中的drRow指前面函数中传递过来的childtable的“行”,我想如果用table1的“行”来替换这个drRow会不会错!如果是错的,为什么?我问的请您给我详细解释,没问的请您也给我详细解释,我的新手,问题可能比较弱智,请您见谅!解释的越通俗形象越好!谢谢!

解决方案

解决方案二:
偶也知道问题太多,您懒得回答,可是放在百度上好多天都没人来答,请您帮帮忙!
解决方案三:
up
解决方案四:
太多了,有些问题等学得多了,自然就明白了,:)
解决方案五:
靠写这么多我看了就想吐
解决方案六:
递归说明了就是自己条用自己!很简单的啊目的是:节点下还有节点然而我们遍历节点下的数据使用方法是一样的参数也是一样的所以我们就用递归
解决方案七:
up

时间: 2024-11-02 08:53:13

treeview递归遍历问题,代码看不太懂(我是新手)的相关文章

javascript中的正则表达式看不太懂,求解释

问题描述 javascript中的正则表达式看不太懂,求解释 <script type="text/javascript"> /* 赋值合同行下标 */ var electronicContractRowIdx = 0, /* 获取合同模板 */ electronicContractTpl = $("#electronicContractTpl") .html().replace(/(//<!--)|(//-->)/g,""

camera-eeprom的dts文件节点信息。一些信息看不太懂。

问题描述 eeprom的dts文件节点信息.一些信息看不太懂. 里面的每个block为什么会分成pagepageenpollmem四个部分?每个部分分别指的是什么?求指教. 解决方案 对应厂商硬件的关系,实际意义并不是特别重要.只要和硬件的信息储存对应就可以了

阶乘 算法-网上找的c语言的求大数阶乘的答案 看不太懂这个算法 求大神解释算法

问题描述 网上找的c语言的求大数阶乘的答案 看不太懂这个算法 求大神解释算法 #include int main() { ??? int n; ??? int a[9000]; //确保保存最终运算结果的数组足够大 ???? int digit = 1; //位数 ???? int temp;?? //阶乘的任一元素与临时结果的某位的乘积结果 ???? int i, j, carry; //carry:进位 ???? printf("please in put n:n"); ??? s

matlab语法问题看不太懂

问题描述 matlab语法问题看不太懂 [xph]=vector1(yph,norm);%yph,norm都是三维向量,这个句子是什么意思? [hx,hy,hz]=incfld(x2,y2,z2,rlam,foc,xf,yf,zf,fdata,qq,apol,bpol,psi); %等式右边括号里都是数字.如果是输入hxhyhz的元素,又是怎样分配的? [jx,jy,jz]=vector(hx,hy,hz,norm(1),norm(2),norm(3));%norm是三维向量

求助:下面这段代码我看不太懂,有没有好心人帮我添加一下注释,帮我理解一下。拜托拜托。

问题描述 usingSystem;usingSystem.IO.Ports;usingSystem.Threading;publicclassPortChat{//定义静态函数staticbool_continue;staticSerialPort_serialPort;publicstaticvoidMain(){stringname;stringmessage;StringComparerstringComparer=StringComparer.OrdinalIgnoreCase;Thre

一个DbCommand看不太懂,求详解

问题描述 @{@DbCommand("Haiku";"s_DirectoryListExt";"1";"1")}这个是什么意思,好像功能是发邮件是点击收件人出来的搜索范围下拉框的初始化命令s_DirectoryListExt是代理还是表单还是视图还是特殊公式,定义在哪里?或者说怎么修改图片中,搜索范围那个下拉框,默认显示第二个选项而不是"联系人" 解决方案 本帖最后由 iwlyx 于 2013-09-02

这个方法看不太懂。。有人指点下不喔。

问题描述 private static final byte[] a; static { new byte[] { 8, 2, 11, 12, 1, 10, 0, 13, 7, 3, 14, 5, 15, 6, 4 }[15] = 9; a = new byte[] { 6, 4, 1, 9, 14, 11, 13, 8, 0, 15, 5, 2, 3, 7, 10, 12 }; } public static byte[] a(byte[] paramArrayOfByte) { byte[]

二叉树先序递归遍历代码

问题描述 二叉树先序递归遍历代码 哪位能给一个完整的二叉树先序递归遍历的代码,想学习一下,新手,求指教??? 解决方案 二叉树的递归 非递归 先序 中序 后序及层次遍历代码实现 解决方案二: http://blog.chinaunix.net/uid-20775243-id-2554952.html 解决方案三: 具体可看我博文http://blog.csdn.net/evankaka/article/details/48088241 package com.lin;import java.ut

数据结构算法-菜鸟问,二叉树的非递归遍历问题

问题描述 菜鸟问,二叉树的非递归遍历问题 二叉树的非递归遍历跟着代码走一遍可以看懂是怎么实现的,想问一下利用栈非递归实现遍历是怎么想到的,代码是怎么来的呢 解决方案 我理解你的问题,意思是想问二叉树遍历是怎么出来这种算法的?,这是一个叫哈弗曼的人首先提出的二叉树概念,你要是想追溯本源就去了解他.. 我觉得学算法,_最主要就是要瞄准算法怎么解决问题,而不是去讨论起源,_ 就好比牛顿发现了行星轨道之间运转的规律--万有引力,,但是并不清楚为啥是遵循这样运动的.... 解决方案二: 我觉得你应该先把二