2010-08-05 60 views
0

我使用的是一個listview來顯示一些items.But有時根據條件我必須隱藏從列表中少數項目。所以我怎麼能做到這一點?我使用ASP.Net與C#。從ListView控件中隱藏項目

回答

0

選項包括:

  • 如果你談論的是隱藏整個項目在列表...編寫您查詢,以便這些項目將被過濾掉,當你得到你的ListView綁定到列表中。 (即,如果這些來自數據庫,則在SELECT語句中添加WHERE子句)。
  • 如果您在ListViews的ItemTemplate中討論特定控件,則可以在您的位置設置「Visible = false」要隱藏它。

像這樣:

<ItemTemplate> 
    <asp:Button Runat = "Server" visible="<%# Eval(SomeCondition) %>" Text = "Click Me" /> 
</ItemTemplate> 
1

沒有辦法「隱藏」。您必須先移除然後再添加,才能讓項目再次顯示。

+1

事實並非如此。您可以設置可見=關於虛假基於條件的ListView中的項目。 – David 2010-08-05 14:50:05

+0

@David我認爲他意味着動態隱藏項目,而不是基於標準,但是基於事件。也就是說,他希望能夠做到這一點:this.listView1.Items [0] .Visible = false;他不能這樣做。 – 2010-08-05 16:07:34

+0

如果是這種情況,那麼可以在ItemCommand事件中完成。 (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.itemcommand.aspx)幾乎所有設置爲在服務器上運行的可見控件(通過Runat =「Server」)標籤)可以將可見性設置爲false。我可能會用「Select」命令來做。 – David 2010-08-05 16:18:26

0

如果動態填充列表項,我會檢查的條件,然後機會的DataSourceID,或者數據源使用的查詢,然後

MyListView.DataBind(); 

否則,如果沒有動態填充它,您可以將ListItems定義爲該頁面的靜態成員,然後在將ListItems集合添加到ListView之前檢查您的條件並刪除要「隱藏」的項目。

0

我找到一個解決方案來解決這個問題,使用ItemsContainerStyle:

<ListView.ItemContainerStyle> 
    <Style TargetType="ListViewItem"> 
     <Setter Property="Visibility" Value="{Binding propertyName, Converter={StaticResource ITVConverter}}"/> 
    </Style> 
</ListView.ItemContainerStyle>