内容页面中的母版页控制器事件句柄

时间:2013-08-20 18:52:03

标签: asp.net vb.net c#-4.0 master-pages content-pages

我有一个包含图像按钮和GridView的母版页。

<asp:ImageButton ID="ImageButton2" runat="server" Height="48px" ImageUrl="~/IconsPack/Add.png" ToolTip="Add Record" CssClass="morph" Width="48px"/>

        <asp:GridView ID="GridView1" runat="server" CssClass="EU_DataTable" EmptyDataText="No Data Available.">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:CheckBox ID="CheckBox1" runat="server" />  
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>

在我的内容页面(.aspx)中,我可以将数据源附加到gridview,它运行良好。需要帮助的地方是..我想在我的CONTENT PAGE(.aspx)中处理图像按钮的事件(以及与gridview交互)同样,图像按钮和gridview在主设备中将在加载内容页面时填充。我想做的一个例子.. grive视图里面有一个复选框..所以我想检查一个特定的行,然后单击图像按钮删除该行。这可能听起来有点令人困惑......如果有人不理解......我可以进一步解释。请帮助......迷失。

1 个答案:

答案 0 :(得分:4)

你可以这样做:

在后面的母版页代码中:

public event EventHandler MasterControlClicked;

protected void ImageButton2_Click(object sender, EventArgs e)
{
    OnMasterControlClick(e);

}

protected void OnMasterControlClick(EventArgs e)
{
    if (this.MasterControlClicked != null)
    {
        this.MasterControlClicked(this, e);
    }
}

在内容页面中:

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);

    if (this.Master is SiteMaster)
    {
        ((SiteMaster)this.Master).MasterControlClicked += new EventHandler(ContentControlClicked);
    }
}

private void ContentControlClicked(object sender, EventArgs e)
{
    //do whatever you need
}