- ベストアンサー
マスターページからコンテンツページのメソッドを実行したい
- マスターページからコンテンツページのメソッドを実行する方法についての質問です。
- マスターページとコンテンツページの関連性や、メソッドの実行手順について知りたいです。
- SEOを意識したタイトルと要約文、さらにハッシュタグの作成をお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
---------- ※単純解答 ---------- public partial class Site1 : System.Web.UI.MasterPage { protected void Page_Load(object sender, EventArgs e) { TextBox l_txt = new TextBox(); l_txt.Text = this.呼出(); this.Page.Form.Controls.Add(l_txt); } private string 呼出() { WebForm1 l_frm = (WebForm1)this.Page; return l_frm.メソッド(); } } ---------- ※別解 ---------- マスタを利用するってことは、埋め込むフォームが変わるはずです。 埋め込まれるフォームはベースクラスを利用した作りにして、マスタからのメソッド呼び出しはベースクラスのメソッドを呼ぶと、スマートな作りになると思います。 [childpage.cs]をプロジェクトに新規追加 public class childpage : System.Web.UI.Page { //継承可能なメソッド1 public virtual string メソッド() { return "未設定"; } //継承可能なメソッド2 public virtual string メソッド2() { return "親です"; } } [WebForm1.aspx.cs]を改造 public partial class WebForm1 : childpage { // このメソッドを省略すると、ベースのメソッドを実行する public override string メソッド() { return "XXXXXXX"; } // おまけ public override string メソッド2() { //親のメソッド2との合わせ技 return String.Format("親を呼ぶと【{0}】が返る", base.メソッド2()); } } [Site1.Master.cs]も改造 (単純解答を改造) private string 呼出() { childpage l_frm = (childpage)this.Page; return l_frm.メソッド(); }
お礼
私が尋ねた質問は『※単純解答』で解決することが出来ました。 が、『※別解』を見て目からうろこの状態です。 まさに、私がやらなければいけない解答がここに書かれていました。 1050YEN様ほんとうにありがとうございました。 解決の糸口がはっきりと見えました。