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