2010-10-29 70 views
2

我已經使用文字創建查找控制Asp.net

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

。現在我想得到這個控制,所以我可以檢查它是否被選中。我如何在aspx.cs頁面找到這個控件?

+0

你可以給一些細節 – AsifQadri 2010-10-29 12:00:12

+0

我使用的是面板......比我創建在運行時的字面值和賦值literal.text =「 ..現在我想查找的是複選框被選中或不是我怎麼找到它?我無法找到它..我嘗試使用findcontrol ...任何幫助? – 2010-10-29 12:47:38

回答

0

嘗試

Page.Controls.FindControl() 

Page.YourFormNameHEre.Controls.FindControl() 
1

使用FindControl來搜索您所指定的ID參數的服務器控件。

Control ctrl = FindControl("TextBox1"); 
2

如果以編程方式將其創建爲文字,則無法使用FindControl來查找它。當窗體回發,你可以使用的形式收集,看看是否值回發,如:

Request.Form["test"] 

Request["test"] 

如果用戶不檢查的複選框,然後在表單值不會出現,這是使用隱藏字段解決的問題。

HTH。

5

,如果你想找到隱藏文件的代碼控制,那麼你應該設置此爲RUNAT =「服務器」,

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