哪为仁兄帮我分析一下这段代码,C#的for嵌套(新手)
for(int i = 0 ; i < ds.Tables[0].Rows.Count ; i++)
{
for(int x = 0 ; x < treeModels.Nodes.Count ; x++)
{
if(ds.Tables[0].Rows[i][ "ModelCode "].ToString() == treeModels.Nodes[x].Tag.ToString())
treeModels.Nodes[x].Checked = true;
if(treeModels.Nodes[x].Nodes.Count > 0)
CheckNodes(treeModels.Nodes[x],ds.Tables[0].Rows[i][ "ModelCode "].ToString());
}
}
如题,谢谢各位~~!
[解决办法]
楼主要问什么?
-----------------------
CSDN 论坛助手
http://china-csdn.cn
[解决办法]
你对这段代码有什么疑问?
[解决办法]
看的明白,说不清白。。。帮顶
[解决办法]
CheckNodes方法是什么?
估计是想递归
[解决办法]
应该是实现了 treenode的check状态和数据库记录的一个匹配吧?
[解决办法]
似乎是判断节点是否是可以展开的(即是否有子节点)
[解决办法]
if(ds.Tables[0].Rows[i][ "ModelCode "].ToString() == treeModels.Nodes[x].Tag.ToString())
treeModels.Nodes[x].Checked = true;
如果这个节点的tag和数据库里对应的值一样,那么把他前面的复选框选中
if(treeModels.Nodes[x].Nodes.Count > 0)
CheckNodes(treeModels.Nodes[x],ds.Tables[0].Rows[i][ "ModelCode "].ToString());
如果这个节点还有子节点的话,那么调用CheckNodes
[解决办法]
这应该是一个递归的过程,用DataTable中每行记录的ModelCode字段与树节点的tag 进行比对,值相待的NODE的复选框选
[解决办法]
在加载的node的时候设定了node的Tag值,用于标记
在检测的时候就检测这个值
如果我新加了一个窗口,怎么才能让新加入的窗口也加进来呢?
什么意思?
[解决办法]
这个和新窗体有啥子关系哦?
[解决办法]
明白了
把新窗口的名称加到数据库里就可以了,只是节点要对应好