2010-11-21 4 views
0

나는 이것이 내가이 databounded 목록asp.net에서 드롭 다운리스트에서 선택한 값을 가져

<asp:DropDownList ID="ddlCountry" runat="server" 
DataTextField="printable_name" 
DataValueField="iso"> 
    </asp:DropDownList> 
에게 전화를 어떻게 방법 영문 파일에 내 데이터베이스

public void ShowCountries() 
    { 
     OdbcConnection conn; 
     conn = new OdbcConnection(ConfigurationManager.ConnectionStrings["jConnString"].ConnectionString); 
     conn.Open(); 
     string sql = "SELECT iso,printable_name FROM country"; 

     OdbcCommand cmd = new OdbcCommand(sql, conn); 


     try 
     { 
      //ddlCountry.DataSourceID = "country"; 
      ddlCountry.DataSource = cmd.ExecuteReader(); 
      ddlCountry.DataTextField = "printable_name"; 
      ddlCountry.DataValueField = "iso"; 
      ddlCountry.DataBind(); 
     } 
     catch (Exception ex) 
     { 
      Check.Text = "3" + ex.Message; 
     } 
     finally 
     { 
      ddlCountry.Dispose(); 
      conn.Close(); 
      conn.Dispose(); 
     } 

    } 

에서 국가의 목록을 표시하는 드롭 다운리스트가

그것은 목록을 보여 주지만 다른 옵션을 선택하려면 첫 번째 옵션은 항상 첫 번째 옵션의 값을 삽입합니다. 내가 선택한 것을 절대 선택하지 않습니다. 무엇을 잘못하고 있습니까?

+0

코드에서 옵션을 어떻게 선택합니까? –

답변

0

데이터 소스가 선택한 값에 액세스하기 전에 컨트롤에 다시 바인딩되는 것처럼 들리므로 선택된 값은 항상 데이터 소스의 첫 번째 값입니다.

어디에서 언제 ShowCountries이 호출 되나요? 추측에, 나는 당신이 또한 Page_Load

if (!IsPostback) { 
    // bind the datasource here, when the page initially loads 
    ShowCountries(); 
} 

IsPostback에 대한 검사를 놓치고 말하고 싶지만, 난 당신이 finally 블록에 ddlCountryDispose()를 호출 할 생각하지 않습니다.

관련 문제