0

各行に 3 つの個別の Web ユーザー コントロールを持つ gridview があります。各ユーザー コントロールには、独自のグリッド ビューが含まれています。親グリッドビューを再バインドするときに、ユーザーコントロール内のグリッドビューを再バインドできる必要があります。私が今持っているように、親グリッドを再バインドすると、ユーザー コントロール内のすべてのグリッドがすべてのデータを失います。親グリッドを再バインドするときにグリッドを再バインドするために、親グリッド内のユーザー コントロールにアクセスするにはどうすればよいですか?

4

1 に答える 1

0

親グリッドのRowDataBoundイベントを使用すると、次のようなことができます。

void theParentGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
     if (e.Row.RowType == DataControlRowType.DataRow)
     {
        DataRow row = ((System.Data.DataRowView) e.Row.DataItem).Row;
        MyCustomControl custControl1 = e.Row.FindControl("MyCustomControl1Id") as MyCustomControl;
        MyCustomControl custControl2 = e.Row.FindControl("MyCustomControl2Id") as MyCustomControl;
        MyCustomControl custControl3 = e.Row.FindControl("MyCustomControl3Id") as MyCustomControl;
        if (custControl1!=null)
             custControl1.bindForRow(row);
        if (custControl2!=null)
             custControl2.bindForRow(row);
        if (custControl3!=null)
             custControl3.bindForRow(row);

     }
}

もちろん、カスタム コントロールのバインド ルーチンは、によって提供される情報に基づいて、独自のグリッドで DataBind の呼び出しを処理しrowます。

于 2012-05-24T23:47:12.063 に答える