使用DataTable数据源搜索Gridview

时间:2009-05-27 14:43:52

标签: asp.net search gridview datatable

我有一个gridview,可以从webservice获取数据。

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

   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()

我必须得到结果并克隆数据表才能获得架构。然后我从原始数据表中做了选择。我循环查看结果并将它们添加到克隆数据表中。

1 个答案:

答案 0 :(得分:5)

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

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