2009-12-01 24 views
2

我想評估綁定到中繼器的當前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 

回答

2

之前,您想要做的是過濾結果集,然後將其設置爲DataSource您是否嘗試將項目的可見性設置爲False?

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

你正在以錯誤的方式前進。在代碼中的這一點上,一個項目已經被添加,並且你只是綁定(填充)它。在您撥打repeater.DataBindrepeater.DataBind

+0

不幸的是,這是行不通的,這是我真正想要做的。我想很難解釋這種情況。但是我知道在ItemDataBound中做這樣的事情已經太晚了。 – mccrager 2009-12-01 20:15:45

+0

在那種不幸的情況下,如果我有機會,我會將整個'ItemTemplate'包裝在一個面板中,當感興趣的條件滿足時,我會將面板可見性設置爲false。 – 2009-12-01 20:21:31

+0

當然,如果你使用'AlternatingItemTemplate',例如不同的背景顏色,那麼這種方法會搞砸了。爲了解決這個問題,你必須有一個外部計數器,其中包含目前實際可見的項目數量,並且基於'visibleItems%2 == 0'設置背景,但現在它真的開始變髒了。我希望這不是你的情況 – 2009-12-01 20:23:20

相關問題