2017-04-25 8 views
0

子ページがいくつかあるマスターページがあります。このマスターページには、すべての子ページが使用するためグリッドビューが含まれています。個々の子ページの小さなイベントのグリッドビューに小さな変更を追加する必要があることがわかった段階に達しました。マスターページ内のグリッドビューイベントの潜在的な違い

例として、私は3つのページ、A.aspx、B.aspx、C.aspxを持っています。 3つすべてがグリッドを使用し、マスターページにあるグリッドビューに異なるデータをバインドします。 A & Bはほぼ同じで、問題はありませんが、Cは行属性を追加してA & Bを必要としません。

これらの変更を他のページに影響を与えずに適用するにはどうすればよいですか?

[オプション]これは完全に間違った方法ですか、別のページにする必要がありますか?

Little diagram of my situation

答えて

0

あなたはプログラム的に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; 
    } 
} 
関連する問題