2013-06-02 22 views
0

我想在asp.net中的同一个搜索页上的gridview上显示搜索结果。这里是UI:Gridview不在asp.net中查看结果

enter image description here

这里是我的代码:

protected void Page_Load(object sender, EventArgs e) 
{ 
    searchResults.DataBind(); 

} 
protected void BClassSearch_Click(object sender, EventArgs e) 
{ 
    // if (!IsPostBack) 
    //{ 
     SqlConnection con = new SqlConnection(); 
     con.ConnectionString = Userfunctions.GetConnectionString(); 
     con.Open(); 
     string selected = lbCourseListBox.SelectedValue; 

     if(selected!="" && Tcoursenumber.Text!="") 
     { 
      string query = "select [CRN],[CourseCode],[CourseNumber],[Credit],[CourseName],[Capacity],[InstructorName] from CourseTable where CourseCode='" + lbCourseListBox.SelectedValue+"' and CourseNumber = '" + Tcoursenumber.Text+"'"; 

      SqlDataAdapter adap = new SqlDataAdapter(query, con); 

      DataTable tab = new DataTable(); 

      adap.Fill(tab); 

      searchResults.DataSource = tab; 
      searchResults.DataBind(); 
     } 
     else if (selected != "" && Tcoursenumber.Text == "") 
     { 
      string query = "select [CRN],[CourseCode],[CourseNumber],[Credit],[CourseName],[Capacity],[InstructorName] from CourseTable where CourseCode='" + lbCourseListBox.SelectedValue; 

      SqlDataAdapter adap = new SqlDataAdapter(query, con); 

      DataTable tab = new DataTable(); 

      adap.Fill(tab); 

      searchResults.DataSource = tab; 
      searchResults.DataBind(); 
     } 
     else if (selected == "" && Tcoursenumber.Text != "") 
     { 
      string query = "select [CRN],[CourseCode],[CourseNumber],[Credit],[CourseName],[Capacity],[InstructorName] from CourseTable where CourseNumber='" + Tcoursenumber.Text; 

      SqlDataAdapter adap = new SqlDataAdapter(query, con); 

      DataTable tab = new DataTable(); 

      adap.Fill(tab); 

      searchResults.DataSource = tab; 
      searchResults.DataBind(); 
     } 
    //} 
    Response.Redirect("SearchCourse.aspx"); 
} 

的问题是,没有搜索结果将显示在GridView控件。谁能帮我这个?

感谢

回答

1

在按钮的末尾删除Response.Redirect("SearchCourse.aspx");点击

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     // do you want to bind something in first time load? then load it here 
     // searchResults.DataSource = tab; 
     searchResults.DataBind(); 

    } 

} 

你不想给Response.Redirect打电话到相同的页面,因为当你点击按钮,它会投递的页面。如果您致电Response.Redirect它将加载新页面,并且您将丢失页面中的所有控件状态。

+0

工作,谢谢。但是我不明白为什么它现在能够工作,我的代码和你的解决方案有什么区别? – yrazlik

+1

@bigO'Response.Redirect'会再次加载您的页面。你会失去搜索选择等。 – Damith