Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
即使在asp.net中退出for循环后,该函数也会再次执行_Asp.net_Treeview_Treenode - Fatal编程技术网

即使在asp.net中退出for循环后,该函数也会再次执行

即使在asp.net中退出for循环后,该函数也会再次执行,asp.net,treeview,treenode,Asp.net,Treeview,Treenode,我正在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][

我正在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);
    }
}
int FindLevel(字符串id,int级别)
{
int dj=0;
for(dj=0;dj
让我们假设当dj=10时,第一个if条件满足并在返回级别时退出for循环。
但是,在退出for循环后,FindLevel函数将再次执行,直到dj达到Datatable count。

return将返回值,但循环将继续


使用break退出循环。

我使用了break。但是,它并没有打破循环。它只是打断当前的迭代并继续。