0

チュートリアルhttp://www.codeproject.com/Articles/20047/Editable-Nested-GridView-All-in-Oneに従いました

このページでは、親グリッドビューに対応するテーブルがレンダリングされ、子グリッドビューに対応する別のテーブルが親テーブルの行内に存在する必要があります。しかし、代わりにそれは空のセクションしかありません

<tr>
    <td colspan="100%">
       <div id="div1" style=style="display:block;position:relative;left:15px;OVERFLOW:auto;WIDTH:97%">
             <div></div>
        </div>
    </td>
</tr>

Visual Studioからデバッグしているときに、「子グリッドビュー」(サーバーコントロール)が検出されていることがわかりました。親gridviewのROwDataBoundイベントでは、次のように子gridviewコントロールを見つけることができます。

GridView gv = new GridView();
gv = (GridView)row.FindControl("GridView2");

nullreference例外が生成されないため、これを想定しました

4

1 に答える 1

2

では、子グリッドのデータソースを設定し、後で親グリッドにバインドしましたRowDataBoundか?それ以外の場合、グリッドはレンダリングされません。

var gv = (GridView)row.FindControl("GridView2");
gv.DataSource = someDataSource;
gv.DataBind();

補足:とにかく参照がある場合は、デフォルトのコンストラクターを介してGridViewのインスタンスを作成する必要はありません。GridViewを構成するコードは冗長です(ちなみにCodeprojectでも)。

于 2012-03-21T12:42:29.317 に答える