0

2 つの異なる aspx フォームで asp.net ユーザー コントロールを使用しています。呼び出し元のフォームに応じて、ユーザー コントロールのイベント処理をカスタマイズするにはどうすればよいですか?

void ComboboxCountry_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
  {
            if it is form1 that called the User-control => do process 1

            if it is form2 that called the User-control => do process 2
  }

ありがとう。

4

1 に答える 1

0

これが実装しようとしている良いデザインであるという事実にもかかわらず、次のようなプロパティをコントロールに追加できます

public BehaviourEnum Behaviour { get; set; } // You need to implement the enum

その後、あなたができる

void ComboboxCountry_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
    if (Behaviour == BehaviourEnum.Behave1) // etc.
}

コントロールを実装するページでは、それに応じて Behaviour-Property を設定する必要があります。

編集: コントロールが親ページとやり取りする必要がある場合は、親ページにインターフェイスを導入します。次に、次のようなものを設計できます。

// The page containing this control needs to implement IMasterpage
public IMasterpage Masterpage { get; set; } 

void ComboboxCountry_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
    // Propagate the behavour to your parent page
    Masterpage.CallwatheverMethodInYourInterface();
}

目標は、親ページに依存する動作を親ページ自体に伝播することです。そうすれば、コントロールをスリムで独立した状態に保つことができます。

于 2013-08-30T08:08:06.113 に答える