2013-01-07 99 views
2

如果是,請問是否可以在中繼器中使用過濾器?有可能在asp.net c#中?我可以在asp:repeater中使用過濾器嗎?

在我的項目中,我把過濾器的動態數據放在中繼器中。

看到的例子,我想在那個中繼類型的過濾器Click here

+0

爲什麼不在傳遞集合到控件之前應用過濾器? – lante

+0

您可以使用dropdownlist綁定綁定到任何字段,並根據列表中選定的項目。你可以過濾中繼器。 –

回答

0

你說的「過濾器」是什麼意思? 我認爲你必須在你的數據源上做到這一點。

+0

過濾器意味着我可以從asp:repeater中找到具體記錄,數據庫記錄綁定在中繼器中,並且我想使用該記錄的過濾器 –

+0

因此,必須在您的數據庫查詢中執行過濾器。 – GeorgesD

1

由於您的中繼器綁定到數據源,因此您應該爲其應用過濾器條件。例如,如果數據源由SQLDataSource表示,請參閱SqlDataSource.FilterExpression Property主題。這似乎是一個客戶端過濾。如果是這樣,最好的解決方案是設置SQLDataSource.SelectCommand屬性,以便從數據庫中獲取所需的數據。這將減少從數據庫服務器傳輸到WebServer的數據大小,並使您的應用程序工作更快。

0

如果你想在瀏覽器中過濾,那麼你需要使用JavaScript來顯示和隱藏每個項目的主要元素。

如果您要在服務器上過濾,則需要在DataSource上進行過濾,以在每次更改時移除不需要的條目和DataBind()Repeater。 您可以使用代碼手動執行過濾,或者如果Platon建議可用,則使用FilterExpression。

0

正確的方法是過濾數據源的數據,怎麼過的中繼器,你還可以過濾他們,並告訴他們或不作爲:

<asp:Repeater ID="rMyID" runat="server"> 
    <ItemTemplate> 
    <% if (Condition) { %> 
     Show this line 
    <%} %> 
    </ItemTemplate> 
</asp:Repeater> 
0

我認爲最好的辦法是使用數據表濾鏡屬性。這是一個簡單的例子。

_dt = _dt.Select(「COLUMN_NAME <>'YOURFILTER'」)。CopyToDataTable();

相關問題