だから、これは私の状況です。複数の ASPX ページ (合計 11 ページ) があり、それぞれに、それらのページ専用の異なるフィールド セットが含まれています。
私が実装した方法は、これらすべてのページに同じコードをコピーし、いくつかの変更を加えて実行することです。元。ページ 1 では Page01 ボタンの処理をすべて削除し、ページ 2 では Page02 ボタンのイベントハンドラを削除します。
グッドニュース?これは問題なく機能します (ポストバック、保存など)。悪いニュース?特にコントロール ASCX (TMControl.ASCX) に新しいイベントを追加する必要がある場合は、面倒です。次に、これら 11 個の ASPX ページすべてを再コーディングし、それらを ASCX に接続する必要があります。アル。
質問: 労力を重複させずにこれを行う方法はありますか?
protected void Page_Load(object sender, EventArgs e)
{
Page.Title = "...";
wucTMControls = LoadControl("TMControls.ascx") as TMControls;
wucTMControls.btnPage02Click += new EventHandler(wucTMControls_btnPage02Click);
wucTMControls.btnPage03Click += new EventHandler(wucTMControls_btnPage03Click);
//-----------
// similar lines of eventhandling code exists here for pages 4 thru 11,
// which I removed for readability
//-----------
wucTMControls.btnSavePageClick += new EventHandler(wucTMControls_btnSavePageClick);
wucTMControls.btnSavePayeeClick += new EventHandler(wucTMControls_btnSavePayeeClick);
phTMControls.Controls.Add(wucTMControls);
if (!IsPostBack)
{
loadPage01();
}
}
void wucTMControls_btnPage02Click(object sender, EventArgs e) { if (noChangesOnThisPage()) wucTMControls.btnPage02Clicked(); }
void wucTMControls_btnPage03Click(object sender, EventArgs e) { if (noChangesOnThisPage()) wucTMControls.btnPage03Clicked(); }
//-----------
// similar lines of eventhandler code exists here for pages 4 thru 11,
// which I removed for readability
//-----------
void wucTMControls_btnSavePayeeClick(object sender, EventArgs e) { }