使用多个标签

时间:2012-02-04 11:20:23

标签: c# asp.net sql

在我的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;

怎么办?

3 个答案:

答案 0 :(得分:3)

不是有七个不同的变量(label1label2等)而是有一个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++;
}