【问题标题】:Searching A Gridview With A DataTable Datasource使用 DataTable 数据源搜索 Gridview
【发布时间】:2010-10-29 07:17:05
【问题描述】:

我有一个从 web 服务获取数据的 gridview。

这进入数据集中的应用程序。

   Me.GvStreets.DataSource = TheWebServiceSearch.AddressDataTable
   Me.GvStreets.DataBind()

在网格视图中如何搜索此数据集的内容。

我是否必须将它添加到某种数据源控件中,例如 XML 数据源?

谢谢

我最终做的是这个......

  Dim StreetDataTable As DataTable = Session("StreetData")
   Dim Name As String = StreetDataTable.Columns(0).ColumnName

   Dim FilteredResults As New DataTable
   FilteredResults = StreetDataTable.Clone()

   Dim DataRows() As DataRow
   DataRows = StreetDataTable.Select("street LIKE '%" & Me.txtStreet.Text & _


                         "%'", "Street ASC")
    Dim i As Integer

    For i = 0 To DataRows.GetUpperBound(0)

        FilteredResults.ImportRow(DataRows(i))

    Next i

    Me.GvStreets.DataSource = FilteredResults
    Me.GvStreets.DataBind()

我必须获取结果并克隆数据表以获取架构。然后我从原始数据表中进行了选择。我遍历了结果并将它们添加到克隆的数据表中。

【问题讨论】:

    标签: asp.net search gridview datatable


    【解决方案1】:

    通常您会直接搜索您的数据源,因此在您的情况下,由于 TheWebServiceSearch.AddressDataTable 是一个数据表,您可以执行以下操作:

    DataTable data = TheWebServiceSearch.AddressDataTable;
    DataRow[] foundRows = data.Select("city = 'NY'", "zip ASC");
    

    您可以查看 DataTable.Select 重载的完整列表here


    哦,好吧,现在我知道你需要什么了。我以为你想要别的东西。无论如何,为了您的目的,您应该使用 DataView 对象(它也是可绑定的)。这是一个例子:

    Dim StreetDataTable As DataTable = Session("StreetData")
    Dim Name As String = StreetDataTable.Columns(0).ColumnName
    StreetDataTable.DefaultView.RowFilter = "street LIKE '%" & Me.txtStreet.Text & "%'"
    StreetDataTable.DefaultView.Sort = "Street ASC"
    
    Me.GvStreets.DataSource = StreetDataTable.DefaultView
    Me.GvStreets.DataBind()
    

    看看complete specification of DataView

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 2020-06-10
    • 1970-01-01
    相关资源
    最近更新 更多