小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Page.FindControl(string id) 與母版頁結(jié)合后發(fā)現(xiàn)的一個(gè)問題

 昵稱10504424 2014-01-13

MSDN上解釋Page.FindControl(string id)方法用于查找指定ID的控件。例如:

該方法有點(diǎn)類似javascript中的getElementById(string)。但實(shí)際上,經(jīng)過試驗(yàn)發(fā)現(xiàn)id這個(gè)參數(shù)并不是TextBox控件的ID,而是TextBox控件生成HTML代碼后的name屬性。如下代碼:

<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>

其生成的HTML代碼為:

<input name="TextBox1" type="text" id="TextBox1" />

我們看到,在默認(rèn)情況下,控件TextBox的id屬性對應(yīng)生成后的input標(biāo)簽的id屬性和name屬性(id == name)。當(dāng)有母版頁存在的時(shí)候,情況就變得不一樣了。當(dāng)出現(xiàn)如下模板頁時(shí):

生成的HTML變?yōu)榱耍?lt;input name="ctl00$BodyContent$RealName" type="text" id="BodyContent_RealName" />

此時(shí)我們使用this.Page.FindControl("RealName"),系統(tǒng)會返回null。我們逐一嘗試,this.Page.FindControl("BodyContent_RealName"),系統(tǒng)仍舊返回null。this.Page.FindControl("ctl00$BodyContent$RealName"),OK,正常了,天下太平了。

通過以上調(diào)試過程,我們發(fā)現(xiàn)Page.FindControl(string id)方法的id參數(shù)實(shí)質(zhì)上是控件生成HTML代碼后的name屬性。默認(rèn)情況下(沒有模板頁時(shí)),控件的ID屬性會同時(shí)賦值給控件生成的對應(yīng)html的標(biāo)簽的name和id屬性。所以,此時(shí)Page.FindControl(string id)方法的id參數(shù)只要輸入控件的ID屬性即可。否則則需要輸入控件生成HTML標(biāo)簽后的name屬性。

我們發(fā)現(xiàn),增加如上屬性后,生成的HTML標(biāo)簽中,id屬性保持了不變,但是name屬性仍舊不太友好,聊勝于無吧,畢竟大多數(shù)時(shí)候我們使用js時(shí)都是使用getElementById(string)而不是使用getElementByTagName(string)

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多