过滤网格视图中的行

时间:2012-04-04 17:12:20

标签: asp.net vb.net

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

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

请注意,我无法修改gridview的数据源,因此我需要在创建gridview时以某种方式执行此操作。

2 个答案:

答案 0 :(得分:1)

您可以使用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

另一种方法是过滤您的数据。传递下面函数中的过滤器表达式,它将返回所需的输出。您可以在绑定之前执行此操作。

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

答案 1 :(得分:1)

您可以过滤掉gridview数据源并绑定到gridview,具体取决于日期列中的where条件。这比将条件放在gridview事件上更容易解决。

干杯!!