我在我的search.aspx頁面中有一個.ascx用戶控件。如何從後面的search.aspx.cs代碼中的.ascx用戶控件中獲取控件?從ASP.Net中的ascx頁抓取控件
keywordSearch.Value = "value";
// the code behind can't see the keywordSearch control
我在我的search.aspx頁面中有一個.ascx用戶控件。如何從後面的search.aspx.cs代碼中的.ascx用戶控件中獲取控件?從ASP.Net中的ascx頁抓取控件
keywordSearch.Value = "value";
// the code behind can't see the keywordSearch control
通常內部控制不從模板用戶控件顯示,因爲他們聲明爲protected
。但是,您可以暴露控制在一個公共屬性,像這樣:
public TextBox CustomerName {
get { return txt_CustomerName; }
}
編輯:如果您需要設置控件的值,那麼你有一個公開值的屬性更好,不控制:
public string CustomerName {
get { return txt_CustomerName.Text; }
set { txt_CustomerName.Text = value; }
}
您可能能夠在後面,你的用戶控件的代碼提供一個公共(或內部)屬性允許「讓」在用戶控制的控制。然後,您可以從頁面的代碼中訪問該屬性。
嘗試FindControl方法來訪問在容器頁面控制:
((TextBox)Page.FindControl("keywordSearch")).Value = "value";
你怎麼會寫一個setter嗎? – cdub
如果您需要設置值,那麼您應該根據此處討論的控件將屬性暴露爲字符串或其他類型,然後在訪問器中獲取/設置值。你想暴露一個控制器的值而不是控制器本身的setter。 – kprobst
謝謝我現在終於開始工作了 – cdub