2009-08-05 84 views
0

我aspx頁具有:訪問隱藏的輸入變量

<input type="hidden" id="txtHidden" runat="server" /> 

此aspx頁具有在基本用戶控制類調用的方法的ascx控件(從BaseUserControl繼承)

base.SetHidden("test"); 

基本用戶控制類(繼承自System.Web.UI.UserControl)的SetHidden定義爲

public void SetHidden(string s) 
{ 
    //Here I need to get a reference to txtHidden and set it's value 

} 

回答

0

試試這個:

<input type="hidden" id="txtHidden" runat="server" /> 

然後你應該可以修改它的服務器端。

編輯:啊,我明白了。

從控制試試這個:

Page.Form.FindControl("txtHidden") 
+0

是的,我有runat屬性(編輯過的原始帖子)。我仍然無法從基類訪問txtHidden – Nick 2009-08-05 18:59:42

0

你需要轉換的頁面引用到實際的類頁面,那麼你就可以訪問它的控件:

((TheActualPageClass)Page).txtHidden.Value = s; 
+0

鑄造的唯一問題是,它要求控件知道它處於哪個頁面並投射到該頁面,從而創建一個限制控件重用的依賴項。最好使用Page.Form.FindControl – Randolpho 2009-08-05 20:07:54

1

試試這個:

public void SetHidden(string s) 
{ 
    HtmlInputHidden myHidden = (HtmlInputHidden)this.Page.FindControl("txtHidden"); 
    myHidden.Value = s; 
}