【问题标题】:Nested Gridview in Repeater control中继器控件中的嵌套 Gridview
【发布时间】:2009-03-09 04:57:39
【问题描述】:

我有一个嵌套在中继器控件中的 gridview 控件。


转发器控件在页面加载和 itemdatabound 事件中是数据绑定的 我寻找gridview控件

如果 e.Item.ItemType = ListItemType.Item 那么 Dim gvw As GridView = DirectCast(e.Item.Controls(3), GridView) gvw.DataSource = GetData() gvw.DataBind() 结束如果

发生这一切后,我的页面正在显示转发器控件数据 和gridview中的数据,但问题是只有备用gridviews有数据 即中继器控件中的第 1、3、5 行...具有数据绑定的网格 但第 2、4、6 行...不显示数据

标记只是一个例子

<repeater>
<itemtemplate>
<table>
<tr>
<td>
<gridview />
</td>
</tr>
<tr>
<td>
<label Text='<%# Eval("some_data") %>'
</td>
</tr>
</table>
</itemtemplate>
</repeater>

上面的标记只是一个例子,它是完整的

我认为我做错了什么。

【问题讨论】:

    标签: asp.net gridview nested repeater


    【解决方案1】:

    在你的代码中

    If e.Item.ItemType = ListItemType.Item Then Dim gvw As GridView = DirectCast(e.Item.Controls(3), GridView) gvw.DataSource = GetData() gvw.DataBind() End If
    

    您应该添加一个“OR”子句来检查 ItemType 是否也是 AlternateItem

    If e.Item.ItemType = ListItemType.Item OR e.Item.ItemType = ListItemType.AlternateItem Then Dim gvw As GridView = DirectCast(e.Item.Controls(3), GridView) gvw.DataSource = GetData() gvw.DataBind() End If
    

    【讨论】:

    • 非常感谢......你太棒了,我真的很愚蠢,忽略了替代项目的事实,非常感谢
    • 有时最严重的错误是最容易修复的。这就是为什么第二双眼睛总是有帮助的原因!干杯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多