1

私の問題は、コンテンツを動的に作成する基本ページがあることです。マスター ページには、ベース ページが知る必要があるイベントを発生させるボタンがあります。しかし、ベース ページの OnLoad 関数は、マスター ページの Button_Command 関数の前に起動します。したがって、Button_Command 関数が変数を設定する機会があった後にベース ページをロードする方法を見つけるか、Button_Command 関数からベース ページの関数を呼び出す必要があります。

4

3 に答える 3

1

厳密に型指定されたマスター ページの使用を検討しましたか?

この質問に対する私の回答もご覧ください。

于 2010-04-20T15:48:36.823 に答える
0

Button_Command というロジックをパブリック メソッドに単純にカプセル化し、マスター ページの Button_Command イベントと子ページの Load イベントの両方からそのメソッドを呼び出すことはできますか? だから何か

protected void Page_Load( object sender, EventArgs e )
{
    var master = (MyMaster)this.Master;
    master.Foo();
}
于 2010-04-20T16:07:03.147 に答える
0

インターフェイスでこれを行うことができると思います

public interface ICommandable
{
    public void DoCommand1(object argument);
}

したがって、子ページはこのインターフェースを実装します

public class MyPage : Page, ICommandable
{
    public void DoCommand1(object argument) {

    }
}

そしてマスターページに

public class Master : MasterPage
{
    public void Button_Command(object sender, EventArgs e)
    {
        if (Page is ICommandable)
        {
            (Page as ICommandable).DoCommand1(myargument);
        }
        else
            throw new NotImplementedException("The current page does not implement ICommandable");
    }
}

ただし、Webフォームを使用してから長い時間が経過しているため、これが機能するとは断言できません。以前、こんなことを書いた記憶があります。

于 2010-04-20T15:51:19.000 に答える