我一直在爭取一段時間,我需要一些指導。ASP.NET將控件暴露給其他類
我編碼ASP.NET 4.0 web表單。
的問題是:如何公開一個文本框,標籤或任何其它控制到另一個類。
我有一個WebForm(見下文)。
public partial class WebForm1 : System.Web.UI.Page
{
}
然後這被引用併發送到另一個類。
public class SearchInitializer
{
private WebForm1 _webform1;
public SearchInitializer(WebForm1 Webform1)
{
_webform1 = Webform1;
}
public void ChewSettings()
{
_webform1 //can't find any control in here?!
}
}
首先我想到了創建一個公共屬性,我想我可以從我發送到新類的引用訪問..但拿去!
public partial class WebForm1 : System.Web.UI.Page
{
public string KeywordBox1
{
get {return txt_keyword.Text;}
set {txt_keyword.Text = value;}
}
}
的我試圖繼承的Webform成其他類。使財產可用,但沒有運氣。
public class SearchInitializer : Webform1
{
private WebForm1 _webform1;
public SearchInitializer(WebForm1 Webform1)
{
_webform1 = Webform1;
}
public void ChewSettings()
{
_webform1 //can't find any control in here?!
}
}
好的抽象類migth在這裏有用,繼承一切。但我認爲我錯了。我有事件和靜態類,所以他們可以與頁面交談。但我真的不想使用靜態類作爲容器來保存我的控件中的所有信息。所以這些都是我嘗試過的例子,它們都失敗了。所以這是我基本上試圖擴大我知道的;)感謝閱讀! 他們爲什麼失敗了,我該怎麼做?
根據要求進行編輯!
public partial class WebForm1 : System.Web.UI.Page
{
protected void btn_click(object sender, EventArgs e)
{
SearchInitializer searchIni = new SearchInitializer(this);
}
}
你爲什麼想這樣做?我沒有看到任何理由做到這一點... – naveen
你的財產方法是關於正確的,爲什麼_But不會!_?但最有可能的是你在錯誤的時刻稱呼它。添加更多上下文。 –
顯示您如何創建和使用'SearchInitializer' – Igor