Найти управление Asp.net

Я создал

<input type="checkbox" id="test" > 

используя буквальное. Теперь я хочу получить этот элемент управления, чтобы я мог проверить, проверен ли он или нет. Как мне найти этот элемент управления на странице aspx.cs?

4 ответа

Если вы хотите найти контроль над кодом, стоящим за файлом, то вам следует установить это как runat="server",

literal.text = "<input type=\"checkbox\" id=\"forum1\" runat=\"server\">";



HtmlInputCheckBox test = (HtmlInputCheckBox) Page.FindControl("test");

но всякий раз, когда страница собирается отправить обратно, вы теряете состояние этого элемента управления.

Пусть это даст вам правильное решение http://www.codeasp.net/blogs/SumitArora/microsoft-net/841/value-of-dynamic-textbox-lost-on-postback

Вы можете использовать событие инициализации страницы для генерации контроля

protected override void OnInit(EventArgs e)
{ 
  HtmlInputCheckbox test = new HtmlInputCheckbox ();
  test.id= "test";                 
  pnlControl.Controls.Add(test);
  base.OnInit(e);
}

Если вы создали его программно как литерал, вы не можете использовать FindControl, чтобы найти его. Когда форма отправляет обратно, вы можете использовать коллекцию формы, чтобы увидеть, будет ли возвращено значение, как в:

Request.Form["test"]

или же

Request["test"]

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

НТН.

Используйте FindControl для поиска серверного элемента управления, для которого вы указали параметр id.

Control ctrl = FindControl("TextBox1");

Пытаться

Page.Controls.FindControl() 

или же

Page.YourFormNameHEre.Controls.FindControl()
Другие вопросы по тегам