2014-10-13 2 views
0

asp.net의 드롭 다운 목록 컨트롤이 있습니다. 드롭 다운 목록에서 선택한 항목을 추적하려고합니다. 내가 한 일을 보여 주겠다.asp.net의 DropDown SelectedItem은 선택한 값과 관계없이 항상 동일한 값을 표시합니다.

<asp:DropDownList ID="Dd_Cat" runat="server" 
     DataValueField="CatId" DataTextField="CatName" 
     OnSelectedIndexChanged="wtf" > 
</asp:DropDownList> 

이 뒤에 데이터베이스에서 dropdownlist을 채우는 데 사용되는 코드입니다 :

이 드롭 다운리스트 컨트롤입니다.

protected void bindDropdown() 
{ 
    string mystr = ConfigurationManager.ConnectionStrings["str"].ConnectionString; 
    SqlConnection con = new SqlConnection(mystr); 
    con.Open(); 
    SqlCommand cmd = new SqlCommand("AddCat", con); 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.Parameters.AddWithValue("@action", "select"); 
    SqlDataAdapter da = new SqlDataAdapter(cmd); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
    Dd_Cat.DataSource = ds; 
    Dd_Cat.DataBind(); 
    con.Close(); 
    con.Dispose(); 
} 

dropdownlist 컨트롤의 onselected 속성 :

protected void wtf(object sender, EventArgs e) 
{ 
    string st = Dd_Cat.SelectedValue; 
} 

이 항상 도움을 selected.Please 무엇 nomatter "1"값을 보여줍니다.

답변

3

을 -check을 사용하지 않고 Page_Load에 전화했다고 가정합니다. 그런 다음 항상 기본값을로드하고 SelectedIndexChanged 이벤트가 트리거되지 않습니다. EnableViewStatetrue (기본값)로 설정되어있는 경우

그래서 그 대신이 사용

protected void Page_Load(Object sender, EventArgs e) 
{ 
    if(!Page.IsPostBack) 
    { 
     // page is loaded the first time, load from database 
     bindDropdown(); 
    } 
} 

읽기 : Page.IsPostBack

+0

덕분에, 또한 저를 도왔다. :) – BNN

관련 문제