2011-01-23 48 views

回答

0

我不知道爲什麼要顯示錶中的所有記錄,除了屬於該表上的某個特定過濾器的記錄之外。你想怎麼做清楚什麼是過濾和未過濾的部分?您可以使用UNION ALL將兩個結果集組合在一起。如果屬於已過濾的集合,您也可以添加包含布爾值的列。通過這種方式,您可以根據Codebehind中的RowDataBound中的此列值向行中添加不同的CssClass es。

例如:

SELECT Foo.*,0 AS IsFiltered FROM Foo 
UNION ALL 
SELECT Foo.*,1 AS IsFiltered FROM Foo 
where Name like 's% 

你只需要在這樣一個SQL-數據源。

要設置過濾記錄不同的CssClass:

Private Sub GridRowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound 
    If e.Row.RowType = DataControlRowType.DataRow Then 
     Dim row As DataRowView = DirectCast(e.Row.DataItem, DataRowView) 
     Dim isFiltered As Boolean = CType(row("IsFiltered"), Boolean) 
     If isFiltered Then e.Row.CssClass = "FilteredRecords" 
    End If 
End Sub 

'

相關問題