Во вложенном gridview таблица, соответствующая дочернему Gridview, не отображается в html

Я следовал учебному руководству http://www.codeproject.com/Articles/20047/Editable-Nested-GridView-All-in-One

На странице таблица, соответствующая родительскому Gridview, отображается в другой строке, соответствующей дочернему gridview, в строке родительской таблицы. Но вместо этого он имеет только пустой раздел

<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 следующим образом

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

Я предположил это, поскольку не генерируется исключение нулевой ссылки

1 ответ

Решение

Итак, вы установили источник данных дочерней сетки и затем связали его в родительской сетке? RowDataBound? В противном случае не будет отображаться сетка.

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

Примечание: вам не нужно создавать экземпляр GridView через конструктор по умолчанию, если у вас есть ссылка в любом случае. Код, который создает GridView, является избыточным (даже в случае Codeproject).

Другие вопросы по тегам