在我的ASP.NET应用程序中,我有大约7到8个Label
控件,目前我设置Text
值的代码如下所示:
while (MyReader.Read())
{
if(j>=i && j-i<=10 && j<(10+i+a))
{
Label"+[j]+".Text=a;
}
j++;
}
现在我的标签名称从1到8,我不想修复我的陈述,如:
label1.text =一个;
label.text = B;
怎么办?
答案 0 :(得分:3)
不是有七个不同的变量(label1
,label2
等)而是有一个List<Label>
类型的变量或类似的变量。然后你可以通过索引访问它们,迭代它们等等。
如果您依靠设计师为您声明变量,您可以不管它们,但还有一个集合变量,您可以在一个地方填充它。唯一的问题是,如果你重新分配各个变量,那么这个变化就不会反映在你的集合中。
顺便说一句,看起来你已经将你的表示逻辑和数据访问逻辑放在一个地方 - 你应该考虑将它们分开......
答案 1 :(得分:1)
实际应该解决您的问题:
((Label)Page.FindControl("Label" + j)).Text = a;
然而,正如Jon建议的那样,最好使用list或其他东西以更通用的方式管理标签。
答案 2 :(得分:0)
试试这个
while (MyReader.Read())
{
if(j>=i && j-i<=10 && j<(10+i+a))
{
Label lbl = new Label();
lbl.Name="Label" + j;
lbl.Text = a;
}
j++;
}