2013-06-02 2 views
0

asp.net의 동일한 검색 페이지에서 gridview에 대한 검색 결과를 표시하려고합니다. 여기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에 표시되지는 여기에 UI입니다. 아무도 이것으로 나를 도울 수 있습니까?

감사

답변

1

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("SearchCourse.aspx");를 제거합니다. Response.Redirect으로 전화하면 새 페이지가로드되고 페이지의 모든 제어 상태가 손실됩니다.

+0

감사합니다. 하지만 왜 지금은 작동합니까 이해가 안돼, 내 코드와 솔루션의 차이점은 무엇입니까? – yrazlik

+1

@bigO'Response.Redirect'는 귀하의 페이지를 다시로드합니다. 당신은 검색 선택 등을 잃게됩니다. – Damith

관련 문제