Webfrom中使用FindControl找不到指定控制項解決辦法

當我們在開發.net webfrom的時候畫面上的元件都是一個一個控制項,當要動態對不特定控制項進行操作時,往往都會透過FindControl來找到當時符合條件需要動態進行操作的元件。不過有時會發生找不到元件的情況,這個情況主要發生在使用主版頁面的情況之下,在沒有使用主版頁面時,我們直接搜尋元件ID即可,但是如果有使用主版頁面,在畫面渲染後則元件ID不再是原本設定的ID,而是會變成添加主版頁面的ContentPlaceHolder ID。

所以我們不能單純的使用FindControl,而必須在之前先在主版頁面找到ContentPlaceHolder 後再找我們想要的元件。

相關範例如下

原本方式找不到

C#
Label label= (Label)Page.FindControl(label1);

應改為以下方式

C#
Label label= (Label)this.Master.FindControl("ContentPlaceHolder1").FindControl(label1);

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *