动态地在循环中派生标签名称
本文关键字:派生 标签名 循环 动态 | 更新日期: 2023-09-27 18:17:45
在Visual Web Part pageLoad事件(c#)中,我调用了一个REST API,它以XML格式返回结果。我想根据返回的结果数量动态设置表中的标签。在解析XML时,节点1将设置标签1,节点2将设置标签2等。
在下面的示例代码中,我想在迭代1时设置Label1_1.Text
的值,在迭代2时设置Label2_1.Text
的值,在迭代3时设置Label3_1.Text
的值,以此类推。
如何做到这一点?
foreach (XmlNode elem in nodes)
{
string childOne = elem["contact1"].InnerText.ToString();
string childTwo = elem["contact2"].InnerText.ToString();
string childThree = elem["contact3"].InnerText.ToString();
string childFour = elem["contact4"].InnerText.ToString();
// I want Label1 to effectively be Labelx (x being the iteration)
// so it is dynamic based on the number of iterations in the loop
Label1_1.Text = childOne;
Label1_2.Text = childTwo;
Label1_3.Text = childThree;
Label1_4.Text = childFour;
}
如果您已经将容器中的所有标签作为控件,则需要在包含控件上使用FindControl方法。
Label toUpdate = (Label)myTable.FindControl("Label1_1");
toUpdate.Text = childOne;
如果标签控件不存在,则需要动态地创建和添加它们(在这种情况下,Id需要是唯一的)