我正在使用嵌套用户控件....
比如:我有一个包含网格视图的“A”用户控件,然后是一个包含“A”和一个用户控件的“B”用户控件,然后是一个包含“B”和另外 2 个用户控件的“C”用户控件。 ..
我想要'C'用户控件中的行命令
提前致谢
这里有两种方法可以实现这一目标。
使用 A 控件中的公共属性公开网格视图。在您的 B 控件中,将 A 控件公开为公共属性。因此,在您的 C 控件中,您可以编写类似
bControl.aControl.GridProperty.OnRowCommand += youreventhandler;
或者,您可以在 A 控件上定义一个事件,例如 OnInnerGridRowCommand,并在 RowCommand 发生时将此事件引发到 B 控件。在 B 控件中定义另一个事件,并在 A 的 OnInnerGridRowCommand 发生时使用适当的参数引发这个新事件。所以你可以在控件 C 中处理这个新事件。
public GridView GridView_In_C
{
get { return innerGrid; }
}
这是 B 用户控件暴露 C
public CWebUserControl C_In_B
{
get
{
return CWebUserControl_In_B;
}
}
这是一个暴露 B 的用户控件
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)
{
}
}