Динамически получить имя метки в цикле? - PullRequest
0 голосов
/ 14 декабря 2011

В событии pageLoad визуальной веб-части (c #) я вызываю REST API, который возвращает результаты в XML.Я хочу динамически устанавливать метки в таблице в зависимости от количества возвращаемых результатов.Поскольку XML анализируется, узел 1 устанавливает метки 1, метки узла 2 и т. Д.

В приведенном ниже примере кода я хочу установить значение Label1_1.Text на итерации 1, Label2_1.Text на итерации 2Label3_1.Text на итерации 3 и т. Д.

Как этого достичь?

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;
}

1 Ответ

1 голос
/ 14 декабря 2011

Вам потребуется использовать метод FindControl для содержащего элемента управления, если у вас уже есть все метки в качестве элементов управления в контейнере.

Label toUpdate = (Label)myTable.FindControl("Label1_1");
toUpdate.Text = childOne;

Если элементы управления метками еще не существуют, вам нужно будет создавать и добавлять их динамически (в этом случае идентификатор должен быть уникальным).

...