【问题标题】:In nested gridview the table corresponding to child Gridview is not rendered in html在嵌套的gridview中,与子Gridview对应的表格未在html中呈现
【发布时间】:2012-04-05 22:30:07
【问题描述】:

我按照教程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”(服务器控件)。在父gridview的ROwDataBound事件中可以找到子gridview控件如下

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

我认为这是因为没有生成空引用异常

【问题讨论】:

  • 旁注:当您有参考时,您不需要通过默认构造函数创建 GridView 的实例。该代码(构造 GridView)是多余的。
  • 那么,你有没有设置子网格的数据源,然后绑定到父网格的RowDataBound中呢?否则将没有网格。
  • @TimSchmelter Schmelter 在为子网格视图设置数据源后初始化我没有调用 gv.DataBind()。当子网格视图被绑定时,它已经呈现。非常感谢

标签: c# asp.net gridview server-side-controls


【解决方案1】:

那么,您是否设置了子网格的数据源并随后将其绑定在父网格的RowDataBound 中?否则不会渲染网格。

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

旁注:当您有引用时,您不需要通过默认构造函数创建 GridView 的实例。构建 GridView 的代码是多余的(顺便说一句,即使在 Codeproject 上也是如此)。

【讨论】:

    猜你喜欢
    • 2013-01-13
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    相关资源
    最近更新 更多