2009-05-27 6 views
3

웹 서비스에서 데이터를 가져 오는 gridview가 있습니다.DataTable 데이터 소스로 Gridview 검색

이것은 데이터 세트의 응용 프로그램에 포함됩니다.

일단 그리드보기가되면이 데이터 세트의 내용을 어떻게 검색합니까?

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

나는 결과를 얻을 스키마를 얻기 위해 데이터 테이블을 복제했다 ...이 있었다. 그런 다음 원본 데이터 테이블에서 select를 수행했습니다. 결과를 반복하여 복제 된 데이터 테이블에 추가했습니다.

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

당신은 DataTable.Select 오버로드의 전체 목록을 확인할 수 있습니다 TheWebServiceSearch.AddressDataTable는 DataTable에이기 때문에, 당신은 다음과 같은 작업을 수행 할 수 귀하의 경우 있도록

답변

5

는 일반적으로 당신은 직접 데이터 소스를 검색 할 것 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을 살펴보십시오.

+0

그리고 여러 열을 검색하고 와일드 카드가 필요한 경우 어떻게 할 수 있습니까? – Paul

+1

@Paul -이 페이지에서 data.Select() 식 인수에 대한 자세한 설명을 확인하십시오. http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression.aspx –