2011-08-05 4 views
10

나는 정말 분명하지 않은 느낌이 들었다. DropDownList의 선택된 값을 캡처 할 수 없다. 값은 목록의 첫 번째 항목을 다시 찾습니다. 자동 응답 속성을 으로 설정했습니다.입니다. 아래에 붙여 넣은 SelectedIndexChangedEvent 있습니다. 이것은 마스터 페이지에 없습니다. 당신의 도움에 미리ASP.Net DropDownList 선택된 값

<asp:DropDownList ID="ddlRestCity" runat="server" 
     Width="100px" AutoPostBack="True" 
     onselectedindexchanged="ddlRestCity_SelectedIndexChanged"> 
</asp:DropDownList> 

고맙습니다 : 여기

protected void ddlRestCity_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (IsPostBack) 
    { 
     r_city = ddlRestCity.SelectedValue.ToString(); 
    } 
} 

은 DropDownList 컨트롤입니다!

+2

DataBind() 호출은 어디에 있습니까? 전화하기 전에'! IsPostBack'을 확인하고 있습니까? –

+0

당신은 모두 글씨를 쓰고 있습니다, 모두가 기본적인 것을 알고 있습니다 –

+0

우리 모두에게 -1 감사합니다. 나는 대답을 제거 할 것입니다. 당신은 적어도 이유를 설명 할 수 있습니다 –

답변

12

내 팔목을 맞춰 보면 아마도 게시물의 목록을 다시 채우고있는 것이므로 선택한 색인이 재설정 될 수 있습니다.

8

DataBind() 어디에서 연락해야합니까? 전화하기 전에 !IsPostBack을 (를) 확인 하시겠습니까? 예를 들어 :

protected void Page_Load(object sender, EventArgs e) { 
    if (!IsPostBack) { 
     ddlRestCity.DataSource = ...; 
     ddlRestCity.DataBind(); 
    } 
} 

설명 : DataBind() 전에 !IsPostBack를 확인하지 않는 경우SelectedIndexChanged 해고되기 전에, 목록 를 다시 채 웁니다 (Page.Load 화재 때문에 같은 SelectedIndexChanged을 같은 전에 하위 이벤트) . 그런 다음 SelectedIndexChanged이 실행되면 "선택한 항목"이 새로 채워진 목록의 첫 번째 항목이됩니다.

+0

고마워, 당신도 내 질문을 해결. –

+0

감사! 그것은 내 문제를 해결했다. – Nayef

0

r_city 란 무엇입니까? 이 텍스트 상자가 있다면

는, 당신은 또한 r_city.text = ...

같은 것을 할 필요가 - 당신은 당신의 포스트 백 체크를 제거하는 것이 좋습니다. 일반적으로 page.onload 이벤트에서 가장 유용합니다. 보통 if NOT ispostback을 확인하고 있습니다 ...