Преобразовать строковое значение в идентификатор PlaceHolder

Как новичок, я попробовал несколько поисков Google и нашел несколько запутанных ответов. То, что я пытаюсь достичь, это:

  1. нажмите на кнопку (одну из многих),

  2. извлечь текстовое значение этой кнопки, затем

  3. используйте это значение, чтобы сделать видимым соответствующий заполнитель.

До сих пор я сделал первые 2 шага, но как мне выполнить шаг 3? Мой код до сих пор, который работает, если я нажимаю на Asia Кнопка, это:

protected void btnArea_Click(object sender, EventArgs e)
{
    string ar = (sender as Button).Text;
    //ar = "Asia";
    phdasia.Visible = true;
}

В простых, дружественных для новичка условиях, что я должен вставить вместо phdasia?

1 ответ

Если ваши элементы управления заполнителями имеют одинаковый формат имени, вы можете получить доступ к ним по имени:

protected void btnArea_Click(object sender, EventArgs e)
{
    string ar = (sender as Button).Text;
    //ar = "Asia";
    string name = "phd" + ar.ToLower(); // The naming format comes here
    Control[] controls = this.Controls.Find(name, true); //find the control(s) by name

    foreach(Control control in controls) // mow loop and make them visible
        control.Visible = true;
    //phdasia.Visible = true;
}

Изменить: в качестве альтернативы вы можете использовать FindControl метод, чтобы найти элемент управления со свойством идентификатора "phdasia" на содержащей странице:

Control control = FindControl(name);
if(control!=null)
    control.Visible = true;
Другие вопросы по тегам