использовать более одной метки - PullRequest
0 голосов
/ 04 февраля 2012

В моем приложении 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 = Ь;

Что делать?

Ответы [ 3 ]

3 голосов
/ 04 февраля 2012

Вместо того, чтобы иметь семь разных переменных (label1, label2 и т. Д.), Есть одна переменная типа List<Label> или нечто подобное.Затем вы можете получить к ним доступ по индексу, выполнить итерации по всем из них и т. Д.

Если вы полагаетесь на то, что дизайнер объявит ваши переменные для вас, вы можете оставить их в покое, но также переменная коллекции, которую вы заполняете в одном месте.Единственная проблема состоит в том, что тогда, если вы переназначите отдельные переменные, это изменение не будет отражено в вашей коллекции.

Кроме того, похоже, что у вас есть логика представления и логика доступа к данным водно место - вы должны рассмотреть их разделение ...

1 голос
/ 04 февраля 2012

Это действительно должно решить вашу проблему:

((Label)Page.FindControl("Label" + j)).Text = a;

Однако, как предположил Джон, было бы лучше управлять вашими ярлыками более общим способом, используя список или что-то в этом роде.

0 голосов
/ 04 февраля 2012

попробуйте

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++;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...