我在我的web项目中使用TreeView来显示菜单。下面是我用来查找节点级别的函数。
int FindLevel(string id, int level)
{
int dj = 0;
for (dj = 0; dj < dTable.Rows.Count; dj++)
{
string id2 = dTable.Rows[dj]["TCode"].ToString();
string parent1 = dTable.Rows[dj]["TGroup"].ToString();
if (id == id2)
{
if (parent1 == "")
{
return level;
}
else
{
level += 1;
FindLevel(parent1, level);
}
}
}
return level;
}
private void PopulateRootLevel()
{
dTable = getConnection.GetAdapterDatatable("uspMenuGet 'ALL','HVV',0,0,0", csGlobal.getMainConnection);
int di = 0;
for (di = 0; di < dTable.Rows.Count; di++)
{
string id1 = dTable.Rows[di]["TCode"].ToString();
dTable.Rows[di]["TLevel"] = FindLevel(id1, 0);
}
}让我们假设当为dj=10时,第一个if条件满足,并在返回关卡时退出for循环。但是,在走出for循环之后,FindLevel函数将再次执行,直到dj达到数据表计数。
发布于 2014-05-20 19:16:57
return 将返回值,但循环将继续。
使用break退出循环。
https://stackoverflow.com/questions/23758103
复制相似问题