【问题标题】:filtering rows in a gridview在gridview中过滤行
【发布时间】:2012-04-05 01:38:50
【问题描述】:

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

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

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

【问题讨论】:

  • 使用rowdatabound事件捕获用户msdn.microsoft.com/en-us/library/…
  • “无法修改数据源”你确定,这没有意义。
  • 我知道如何使用 RowDataBound 更改行的样式,但我不知道如何根据条件实际让 gridview 显示或不显示行 - 谢谢
  • 在将其分配给 GridView 之前更改/增加/减少您的数据源。

标签: asp.net vb.net


【解决方案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

【讨论】:

    【解决方案2】:

    您可以根据日期列的 where 条件过滤掉您的 gridview 数据源并绑定到 gridview。这将比在 gridview 事件上设置条件更简单。

    干杯!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多