私はしばらくの間これと戦ってきました、そして私はいくつかの指導が必要です。
ASP.NET4.0WEBFORMSでコーディングしています。
質問は次のとおりです。テキストボックス、ラベル、またはその他のコントロールを別のクラスに公開する方法。
私はウェブフォームを持っています(下記参照)。
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;}
}
}
Webフォームを他のクラスに継承しようとしました。プロパティを利用可能にしますが、そこには運がありません。
public class SearchInitializer : Webform1
{
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
{
protected void btn_click(object sender, EventArgs e)
{
SearchInitializer searchIni = new SearchInitializer(this);
}
}