2013-02-28 52 views
0

在頁面加載時,我用記錄填充GridView。然後我創建了一個搜索功能來搜索記錄。 GridView實際上是基於搜索文本進行更新的。問題是當我選擇一行時,GridView將顯示所有記錄,而不是基於搜索的列表。GridView在行選擇後重新加載所有記錄

下面是代碼:

Imports MySql.Data.MySqlClient 

Public Class Main_Admin 
    Inherits System.Web.UI.Page 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     Dim myConnection As MySqlConnection 
     Dim myDataAdapter As MySqlDataAdapter 
     Dim myDataSet As DataSet 

     Dim strSQL As String 
     'Dim iRecordCount As Integer 

     myConnection = New MySqlConnection("server=localhost; user id=root; password=admin; database=db; pooling=false;") 

     strSQL = "SELECT emp_id AS 'Employee ID', emp_sname AS Surname, emp_fname AS 'First Name', emp_mname AS 'Middle Name', tbl_emp_cat.cat_name AS 'Category', nature AS 'Nature of Employment' FROM tbl_employee JOIN tbl_emp_cat ON tbl_employee.emp_cat = tbl_emp_cat.emp_cat;" 

     myDataAdapter = New MySqlDataAdapter(strSQL, myConnection) 
     myDataSet = New DataSet() 
     myDataAdapter.Fill(myDataSet, "mytable") 


     GridView1.DataSource = myDataSet 
     GridView1.DataBind() 
     myConnection.Close() 
    End Sub 

    Protected Sub GridView1_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GridView1.RowDataBound 
     e.Row.Cells(0).Width = 100 
     e.Row.Cells(0).Attributes.CssStyle("text-align") = "center" 
     e.Row.Cells(1).Width = 100 
     e.Row.Cells(2).Width = 100 
     e.Row.Cells(3).Width = 100 
     e.Row.Cells(4).Width = 100 
     If (e.Row.RowType = DataControlRowType.DataRow) Then 
      'e.Row.Attributes("onmouseover") = "this.style.cursor='hand';" 
      e.Row.Attributes("onmouseout") = "this.style.textDecoration='none';" 
      e.Row.Attributes("onclick") = ClientScript.GetPostBackClientHyperlink(Me.GridView1, "Select$" & Convert.ToString(e.Row.RowIndex)) 
      e.Row.Attributes.Add("onmouseover", "this.style.cursor='hand';this.style.textDecoration='underline';") 
      'e.Row.Attributes.Add("onmouseout", "this.style.textDecoration='none';") 
      'e.Row.Attributes.Add("onclick", ClientScript.GetPostBackClientHyperlink(Me.GridView1, Page.ClientScript.GetPostBackEventReference(GridView1, e.Row.RowIndex))) 
      ' "Select$" + e.Row.RowIndex.ToString()) 
     End If 
    End Sub 
    Protected Sub GridView1_PageIndexChanging(sender As Object, e As GridViewPageEventArgs) 
     GridView1.SelectedIndex = -1 
    End Sub 

    Private Sub search_Click(sender As Object, e As EventArgs) Handles search.Click 
     Dim myConnection As MySqlConnection 
     Dim myDataAdapter As MySqlDataAdapter 
     Dim myDataSet As DataSet 

     Dim strSQL As String 
     'Dim iRecordCount As Integer 

     myConnection = New MySqlConnection("server=localhost; user id=root; password=admin; database=db; pooling=false;") 

     strSQL = "SELECT emp_id AS 'Employee ID', emp_sname AS Surname, emp_fname AS 'First Name', emp_mname AS 'Middle Name', tbl_emp_cat.cat_name AS 'Category', nature AS 'Nature of Employment' FROM tbl_employee JOIN tbl_emp_cat ON tbl_employee.emp_cat = tbl_emp_cat.emp_cat WHERE emp_sname LIKE '%" & search_text.Text + "%';" 

     myDataAdapter = New MySqlDataAdapter(strSQL, myConnection) 
     myDataSet = New DataSet() 
     myDataAdapter.Fill(myDataSet, "mytable") 


     GridView1.DataSource = myDataSet 
     GridView1.DataBind() 
     myConnection.Close() 
    End Sub 
End Class 

回答

1

你的代碼快速瀏覽表明你缺少你的頁面加載此行

If Not Page.IsPostBack Then 
    ->put your code here 
End if 

網格視圖正在頁面上每次刷新加載擦除你的過濾功能。希望這有助於。

+0

謝謝你,這就是我要找的。 – 2013-03-01 01:32:36