なぜそのテーブルの特定のフィルタに属するレコードのほかに、テーブルからすべてのレコードを表示するかわかりません。どのようにフィルタリングされ、何がフィルタリングされていない部分を明確にしたいのですか?
UNION ALLを使用すると、2つの結果セットを組み合わせることができます。フィルターされたセットに属している場合は、ブール値を含む列を追加することもできます。このようにして、Codebehind内のRowDataBoundのこの列の値に従って、異なるCssClassを行に追加することができます。例えば
:
SELECT Foo.*,0 AS IsFiltered FROM Foo
UNION ALL
SELECT Foo.*,1 AS IsFiltered FROM Foo
where Name like 's%
あなたが唯一このように1つのSQL-データソースを必要としています。
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
「
:
を濾過したレコードごとに異なるのCssClassを設定するには