お世話になります。
マスターページからコンテンツページのメソッドを実行したいです。
よろしくおねがいします。
**********************************
マスタページ:Site1
**********************************
[Site1.Master]
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="Site1" %>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
[Site1.Master.cs]
public partial class Site1 : System.Web.UI.MasterPage
{
ここで、コンテンツページのメソッドを実行
}
**********************************
コンテンツページ:WebForm1
**********************************
[WebForm1.aspx]
<%@ Page Language="C#" MasterPageFile="Site1.Master" Codebehind="WebForm1.aspx.cs" Inherits="WebForm1" %>
<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="ContentPlaceHolder1">
</asp:Content>
[WebForm1.aspx.cs]
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
//このメソッドをマスターページで実行したい
public string メソッド()
{
return "XXXXXXX";
}
}
No.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様ほんとうにありがとうございました。
解決の糸口がはっきりと見えました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 文学 S.Silverstein作の童話The Giving Treeを読んでいます。なぜisのみ斜体文 3 2023/02/22 16:06
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- Visual Basic(VBA) VBAでWEBサーバー上に保存されたPDFファイルのリンク有効チェックについて 1 2022/11/11 16:04
- その他(ブラウザ) ある情報の授業でお気に入りのWebページのスネップショットを撮り、そのページの注目している場所を赤丸 1 2022/06/09 15:13
- その他(インターネット接続・インフラ) 語学レッスン予約ページを作ろうとしています。 1 2022/09/26 17:43
- その他(ブラウザ) Webブラウザについての質問です。 2 2023/03/21 19:23
- PDF AdobeAcrobatでWEBページを丸ごとPDF化 4 2022/05/12 12:22
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- オープンソース イラストのDLサイト 1 2023/05/11 17:33
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
VBPをダブルクリックするとたま...
-
VBA コピーが出来ません…!
-
DataGridViewでセルクリックイ...
-
エクセルVBAにおけるON TIMEメ...
-
javascriptからjavaを呼び出したい
-
コマンドプロンプト実行後に画...
-
Range クラスのAutoFitプロパテ...
-
配列のメソッド
-
コンパイルエラーの理由。
-
Labelコントロールに数字を代入...
-
ウィンドウを最前面にできません
-
CALLされていないメソッドを見...
-
【sendkeysメソッドが動かずに...
-
final修飾子を使っているのに、...
-
特定の文字でReplaceメソッドが...
-
C#SundPlayerで同期再生が再生...
-
ExcelVBAのプログラムをJavaへ変換
-
VB.NETでのEXCELファイルの閉じ方
-
初心者です。メソッドの使い方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
final修飾子を使っているのに、...
-
JSPで<SELECT>の中にDBから持っ...
-
Labelコントロールに数字を代入...
-
エクセルVBAにおけるON TIMEメ...
-
javascriptからjavaを呼び出したい
-
DataGridViewでセルクリックイ...
-
VBPをダブルクリックするとたま...
-
onClickで関数呼出し後に、結果...
-
コマンドプロンプト実行後に画...
-
配列のメソッド
-
日本の教育って時間が無い中で...
-
Refreshメソッドの使い方
-
mainメソッドのthrows節で設定...
-
【sendkeysメソッドが動かずに...
-
C# 演算 最大値 最小値 表現の仕方
-
VBA コピーが出来ません…!
-
Application.Wait の参照設定
-
ウィンドウを最前面にできません
-
for文(拡張)内の変数(ローカ...
おすすめ情報