过滤网格视图中的行



我有一个包含用户信息的网格视图,其中一列是用户添加到系统的日期。

是否可以使用GridView.onRowCreated方法来检查用户是否在给定的时间范围内添加?如果用户是在该时间范围内添加的,则添加该行;如果不是,则不添加该行。

请注意,我不能修改gridview的数据源,所以我需要在创建gridview时以某种方式进行修改。

您可以使用RowBoundData并根据特定条件设置隐藏行

Protected Sub GridView_RowDataBound(sender As Object, e As GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
        e.Row.Visible = True ' base on some condition
    End If
End Sub

另一种方法是过滤您的数据。在下面的函数中传递filter表达式,它将返回所需的输出。你可以在绑定之前这样做。

Public NotInheritable Class GetFilteredData
    Private Sub New()
    End Sub
    <System.Runtime.CompilerServices.Extension> _
    Public Shared Function FilterDataTable(Dt As DataTable, FilterExpression As String) As DataTable
        Using Dv As New DataView(Dt)
            Dv.RowFilter = FilterExpression
            Return Dv.ToTable()
        End Using
    End Function
End Class

您可以筛选出您的gridview数据源,并根据日期列上的where条件绑定到gridview。这将是比在gridview事件上设置条件更简单的解决方案。

干杯!!

最新更新