ネストされたユーザーコントロールを使用しています....
同様に: グリッド ビューを含む 'A' ユーザー コントロール、次に 'A' ともう 1 つのユーザー コントロールを含む 'B' ユーザー コントロール、次に 'B' と 2 つのユーザー コントロールを含む 'C' ユーザー コントロールがあります。 ..
'C' ユーザー コントロールに行コマンドが必要です
前もって感謝します
これを実現する方法は 2 つあります。
A コントロールのパブリック プロパティでグリッド ビューを公開します。B コントロールで、A コントロールをパブリック プロパティとして公開します。したがって、C コントロールでは、次のように記述できます。
bControl.aControl.GridProperty.OnRowCommand += youreventhandler;
または、OnInnerGridRowCommand などの A コントロールでイベントを定義し、RowCommand が発生したときにこのイベントを B コントロールに発生させることができます。B コントロールで別のイベントを定義し、A の OnInnerGridRowCommand が発生したときに、適切なパラメーターを使用してこの新しいイベントを発生させます。したがって、この新しいイベントをコントロール C で処理できます。
public GridView GridView_In_C
{
get { return innerGrid; }
}
これは、C を公開する B ユーザー コントロールです。
public CWebUserControl C_In_B
{
get
{
return CWebUserControl_In_B;
}
}
これは、B を公開する A ユーザー コントロールです。
public BWebUserControl B_In_A
{
get
{
return BWebUserControl_In_A;
}
}
これは、ユーザー コントロールをホストし、RowCommand にアタッチするページです。
public partial class HostPage : System.Web.UI.Page
{
protected void Page_Init(object sender, EventArgs e)
{
AWebUserControlInHostPage.B_In_A.C_In_B.GridView_In_C.RowCommand += new GridViewCommandEventHandler(InnerGridView_RowCommand);
}
void InnerGridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
}
}