如何将当前数据项从绑定到ASP.NET中继器中删除?

如何将当前数据项从绑定到ASP.NET中继器中删除?,.net,asp.net,vb.net,repeater,.net,Asp.net,Vb.net,Repeater,我想评估当前绑定到中继器的数据项,如果条件满足,则将其从添加中删除。我本以为将e.Item.DataItem设置为Nothing会起作用,但事实并非如此。当某个条件满足时,如何不向中继器添加数据项 Protected Sub rpt_OnItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) If e.Item.ItemType = ListItemType.Item Or e.Item.ItemTy

我想评估当前绑定到中继器的数据项,如果条件满足,则将其从添加中删除。我本以为将e.Item.DataItem设置为Nothing会起作用,但事实并非如此。当某个条件满足时,如何不向中继器添加数据项

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

你走错方向了。在代码的这一点上,已经添加了一个项,您只需绑定(填充)它。您要做的是在将结果集设置为
数据源之前,在调用
repeater.DataBind

之前过滤结果集。您是否尝试将项目的可见性设置为False

If true Then
  //don't add the current item
  e.Item.Visible = False
Else
  //add the current item
End If

不幸的是,这将不起作用,这是我真正想做的开始。我想这很难解释。但是知道在ItemDataBound中做这类事情已经太晚了,我想已经足够了。在这种不幸的情况下,如果有机会,我会将整个
ItemTemplate
包装在一个面板中,当满足感兴趣的条件时,我将面板的可见性设置为false。当然,如果您使用
AlternatingItemTemplate
,例如,使用不同的背景色,这种方法会把事情搞砸。要解决这个问题,您必须有一个到目前为止实际可见项目数的外部计数器,并根据
visibleItems%2==0
设置背景,但现在它确实开始变脏了。我希望这不是你的情况