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

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

2 голосов
/ 29 октября 2010

Я создал

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

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

Ответы [ 4 ]

5 голосов
/ 03 ноября 2010

, если вы хотите найти контроль над кодом, стоящим за файлом, вы должны установить это как 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);
}
2 голосов
/ 29 октября 2010

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

Request.Form["test"]

или

Request["test"]

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

HTH.

1 голос
/ 29 октября 2010

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

Control ctrl = FindControl("TextBox1");
0 голосов
/ 29 октября 2010

Попробуйте

Page.Controls.FindControl() 

или

Page.YourFormNameHEre.Controls.FindControl()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...