Преобразовать строковое значение в идентификатор PlaceHolder
Как новичок, я попробовал несколько поисков Google и нашел несколько запутанных ответов. То, что я пытаюсь достичь, это:
нажмите на кнопку (одну из многих),
извлечь текстовое значение этой кнопки, затем
используйте это значение, чтобы сделать видимым соответствующий заполнитель.
До сих пор я сделал первые 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;