我想评估绑定到中继器的当前DataItem,并在条件满足时将其从删除中添加。我原以为把e.Item.DataItem设置为Nothing就行,但事实并非如此。任何想法如何在特定条件满足时不将数据项添加到中继器?如何删除当前DataItem绑定到ASP.NET Repeater?
Protected Sub rpt_OnItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
If true Then
'don't add the current item
e.Item.DataItem = Nothing
Else
'add the current item
End If
End If
End Sub
不幸的是,这是行不通的,这是我真正想要做的。我想很难解释这种情况。但是我知道在ItemDataBound中做这样的事情已经太晚了。 – mccrager 2009-12-01 20:15:45
在那种不幸的情况下,如果我有机会,我会将整个'ItemTemplate'包装在一个面板中,当感兴趣的条件满足时,我会将面板可见性设置为false。 – 2009-12-01 20:21:31
当然,如果你使用'AlternatingItemTemplate',例如不同的背景颜色,那么这种方法会搞砸了。为了解决这个问题,你必须有一个外部计数器,其中包含目前实际可见的项目数量,并且基于'visibleItems%2 == 0'设置背景,但现在它真的开始变脏了。我希望这不是你的情况 – 2009-12-01 20:23:20