C# 母版页中gridview事件的潜在差异

C# 母版页中gridview事件的潜在差异,c#,asp.net,gridview,master-pages,C#,Asp.net,Gridview,Master Pages,我有一个母版页,它有几个子页,这个母版页恰好包含一个网格视图,因为所有子页都使用一个。我已经到了这样一个阶段,我意识到需要为单个子页面将小的更改附加到grid view onrowdatabound事件中 例如,我有3页,A.aspx,B.aspx,C.aspx。这三种方法都使用网格,并将不同的数据绑定到母版页中的gridview。A和B几乎相同,没有任何问题,但C希望附加A和B不需要的行属性 如何应用这些更改而不会对其他页面造成问题? [可选]这是完全错误的方法吗,和/或我应该将它们分开吗 您

我有一个母版页,它有几个子页,这个母版页恰好包含一个网格视图,因为所有子页都使用一个。我已经到了这样一个阶段,我意识到需要为单个子页面将小的更改附加到grid view onrowdatabound事件中

例如,我有3页,A.aspx,B.aspx,C.aspx。这三种方法都使用网格,并将不同的数据绑定到母版页中的gridview。A和B几乎相同,没有任何问题,但C希望附加A和B不需要的行属性

如何应用这些更改而不会对其他页面造成问题?

[可选]这是完全错误的方法吗,和/或我应该将它们分开吗


您可以通过编程方式将事件绑定到GridView。因此,在C.aspx页面中,您可以执行以下操作:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        //find the gridview in the master page
        GridView gv = Master.FindControl("GridView1") as GridView;

        //add the event to the gridview
        gv.RowDataBound += GridView1Master_RowDataBound;

        gv.DataSource = mySource;
        gv.DataBind();
    }
}

protected void GridView1Master_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        e.Row.BackColor = Color.Red;
    }
}