![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
お世話になります。
マスターページからコンテンツページのメソッドを実行したいです。
よろしくおねがいします。
**********************************
マスタページ: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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
クエリ文字列の"?"の後を非表示...
-
javascriptからjavaを呼び出したい
-
PDFファイルから別ウィンドウで...
-
サーブレット GETからPOST送信
-
ウィンドウを最前面にできません
-
mainメソッドのthrows節で設定...
-
c++ CLI 文字列検索について
-
エクセルVBAにおけるON TIMEメ...
-
C#.net Define文
-
onClickで関数呼出し後に、結果...
-
boolean型のフィールドとゲッタ...
-
canvasに描画したものを全て削...
-
コマンドプロンプト実行後に画...
-
DataGridViewでセルクリックイ...
-
Refreshメソッドの使い方
-
メソッドのエラー
-
オートシェイプの位置がずれる...
-
VBAでSaveAs使用し、指定してい...
-
[VBA]GetSaveAsFilenameメソッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
DataGridViewでセルクリックイ...
-
final修飾子を使っているのに、...
-
javascriptからjavaを呼び出したい
-
Labelコントロールに数字を代入...
-
VBPをダブルクリックするとたま...
-
vbaエクセルマクロ RemoveDupli...
-
【sendkeysメソッドが動かずに...
-
mainメソッドのthrows節で設定...
-
エクセルVBAにおけるON TIMEメ...
-
Refreshメソッドの使い方
-
onClickで関数呼出し後に、結果...
-
ウィンドウを最前面にできません
-
JSPで<SELECT>の中にDBから持っ...
-
コマンドプロンプト実行後に画...
-
Application.Wait の参照設定
-
Excel VBA でExcelを終了したい...
-
配列のメソッド
-
エクセルのマクロでプリンタを...
-
Excel VBA シェイプの原型のサ...
おすすめ情報