在将数据显示到来自递归循环结果的文本链接网格时,我遇到了错误。
当我调试时,会显示以下消息: “故障排除提示: 确保您没有无限循环或无限递归。 “
这个方法和我一起递归循环:
private void LevelControl(string parID)
{
DataSet ds = RunQuery("Select PositionCode,PositionName,Parent from Position where Parent = '" + parID + "'");
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
var Parent = ds.Tables[0].Rows[i][0].ToString();
var Child = ds.Tables[0].Rows[i][2].ToString();
HyperLink lnk = new HyperLink();
lnk = new HyperLink();
lnk.Text = ds.Tables[0].Rows[i][1].ToString();
lnk.ID = ds.Tables[0].Rows[i][0].ToString();
lnk.NavigateUrl = "Tree03.aspx?parParent=" + Parent + "&parChild= " + Child + "";
PlaceHolder1.Controls.Add(lnk);
if (ds.Tables[0].Rows[i][2] != null)
{
parID = ds.Tables[0].Rows[i][2].ToString();
LevelControl(parID);
}
PlaceHolder1.Controls.Add(lnk);
PlaceHolder1.Controls.Add(new LiteralControl("<br />"));
}
}
那么我应该怎么做才能解决这个问题呢?
应该在方法中添加什么代码?
答案 0 :(得分:0)
这是因为您将查询中的字段错误地映射到控件。看看指数。 在查询中:
0 PositionCode
1 PositionName
2 Parent
在下面的代码中:
0 var Parent = ds.Tables[0].Rows[i][0].ToString();
1 lnk.Text = ds.Tables[0].Rows[i][1].ToString();
2 var Child = ds.Tables[0].Rows[i][2].ToString();
请参阅:您将Parent和Child混合在一起,因此反复运行相同的查询。