2013-08-30 79 views
2

有沒有什麼方法可以訪問後面的ASP.net代碼中的html控件。從代碼隱藏訪問htmlcontrols

一些類似於Findcontrol()來訪問html控件的控件。我正在使用

HtmlSelect htsel1; 

    htsel1 = (HtmlSelect)FindControl("stage_txt1"); 

但是htsel1返回null。

回答

1

您需要runat =「server」屬性。例如:

<div id="myServerSideDiv" runat="server"></div> 
1

只要給html元素中用runat =「服務器」和id屬性和控制將是accessable從後面的代碼

2

您需要添加runat=serverID

ASPX:

<select id="stage_txt1" runat=server" > 
    <option value="1">stage 1</option> 
    <option value="2">stage 2</option> 
    <option value="3">stage 3</option> 
    <option value="4">stage 4</option> 
</select> 

代碼隱藏:

HtmlSelect myDdl = (HtmlSelect)FindControl("stage_txt1"); 

或者只是使用像Panel代替divTextBox代替HtmlInputTextDropDownList代替HtmlSelect等等servercontrols。

如果頁面是NamingContainer(它們不嵌套在像Repeater這樣的子控件中),那麼您也可以直接訪問它們而不使用FindControl

HtmlSelect myDdl = this.stage_txt1; 
+0

在頁面加載事件我加載從代碼下拉背後這樣+ 「<選擇ID = \」 stage_txt 「+ I + 」\「 類= \ 」enbldbox \「 RUNAT = \」 服務器\ 「>」+「」+「\"Required\"」+「」; } maindiv.InnerHtml = dyntable;我試圖訪問這個下拉按鈕點擊,我無法從代碼後面控制 –

+0

@VenkateshKaramala:不要添加文本,並期望它可以從服務器端訪問。這根本行不通。如果您需要動態添加控件,可以使用像Repeater這樣的webdatabound控件,該控件還可以創建html控件(首選)或創建像HtmlSelect這樣的控件實例並將它們添加到頁面的控件集合中。 –

+0

好的感謝您的幫助 –