2011-04-13 4 views
-1

DataSource이 선택되고 사용자가 DropDownList에서 옵션을 선택하면 런타임에 GridView을 바인딩하려고합니다. 그러나 선택한 테이블 또는 연결이 제대로 이루어지지 않았습니다. 다음 코드를 확인하고 적절한 해결책을 제공해주십시오.격자보기에서 결과가 표시되지 않습니다.

public partial class index : System.Web.UI.Page 
    { 
     SqlConnection conn = new SqlConnection(); 
     string option = ""; 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      option = selectProductdropdown.SelectedValue; 
     } 

     protected void Button1_Click(object sender, EventArgs e) 
     { 
      Label2.Text = option; 
      if (option == "Books") 
      { 

       Label3.Text = option; 
       conn.ConnectionString = ConfigurationManager.ConnectionStrings["booksconnectionstring"].ConnectionString; 
       conn.Open(); 
       SqlCommand cmd = new SqlCommand("SELECT * from books", conn); 
       cmd.CommandType = CommandType.Text; 

       SqlDataAdapter reader = new SqlDataAdapter(cmd); 

       DataSet s = new DataSet(); 
       reader.Fill(s); 
       GridView1.DataSource = s; 
       GridView1.DataBind(); 
       conn.Close(); 
      } 
+1

여기에 오류 메시지를 기재 할 수 있습니까? –

답변

0

각 페이지로드시 옵션을 비우고 있기 때문일 수 있습니다.

0

공용 변수 을 피하십시오. string option = "";

대신 클릭 이벤트에 동일하게 정의하고 버튼을 클릭하면 드롭 다운이 재설정 될 것 때문에 당신을 가정 (이

option = selectProductdropdown.SelectedValue;// move to click event 

선택한 가치를 얻을 여기에 드롭 다운 바인드 코드를 표시하지 않은)

+0

버튼 클릭 이벤트로 이동합니다. 그러나 여전히 결과는 나타나지 않습니다. – Manish

2

문제는 page_load 이벤트에서 옵션에 값을 할당하는 것입니다. 버튼을 클릭하면 page_load가 다시 호출되고 값이 재설정됩니다.

cmd.ExecuteReader(); 

장소를 :이 라인을 생략했다

if (selectProductdropdown.SelectedValue == "Books") 
-1

그것이 있어야 ...

protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!Page.IsPostBack) 
     option = selectProductdropdown.SelectedValue; 
    } 

또는 당신이 좋아하는 경우에 더 나은 것 .. 명세서 사이에 다음과 같이 표시됩니다.

SqlCommand cmd = new SqlCommand("SELECT * from books", conn); 
cmd.ExecuteReader(); // <-- HERE 
cmd.CommandType = CommandType.Text; 
+0

두 코드 사이에서이 코드를 놓치지 마십시오. –

0
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
     option = selectProductdropdown.SelectedValue; 
} 
관련 문제