SelectedIndexChanged 이벤트 핸들러가 이전 인덱스를 가져오는 중입니다.

StackOverflow https://stackoverflow.com/questions/75282

  •  09-06-2019
  •  | 
  •  

문제

내가 처리하고 있어 onSelectIndexChanged 이벤트.DropDownList 선택이 변경되면 이벤트가 발생합니다.문제는 DropDownList가 여전히 이전 값을 반환한다는 것입니다. SelectedValue 그리고 SelectedIndex.내가 도대체 ​​뭘 잘못하고있는 겁니까?

다음은 aspx 파일의 DropDownList 정의입니다.

<div style="margin: 0px; padding: 0px 1em 0px 0px;">
    <span style="margin: 0px; padding: 0px; vertical-align: top;">Route:</span>
    <asp:DropDownList id="Select1" runat="server" onselectedindexchanged="index_changed" AutoPostBack="true">
    </asp:DropDownList>
    <asp:Literal ID="Literal1" runat="server"></asp:Literal>
</div>

여기 DropDownList가 있습니다 OnSelectedIndexChanged 이벤트 핸들러:

protected void index_changed(object sender, EventArgs e)
{
    decimal d = Convert.ToDecimal( Select1.SelectedValue );
    Literal1.Text = d.ToString();
}
도움이 되었습니까?

해결책

페이지 로드 시 우연히 값을 첫 번째 값으로 다시 설정하는 코드가 있나요?

페이지가 다시 로드되면 새 값이 표시됩니까?

다른 팁

AJAX를 사용하는 경우 전체 포스트백이 아닌 콜백을 수행할 수도 있습니다.이 경우 페이지 로드 방법에서 다음을 사용할 수 있습니다.

        if (!IsCallback && !IsPostBack)
        {
            // Do your page setup here
        }

이거 추가 해봐:page.isnotpostback {

} dropdownlist를 바인딩하기 위해 코드 주변.

이것은 명백해 보일 수도 있지만 어쨌든.OnLoad와 같은 다른 이벤트 핸들러에서 초기 값으로 이 드롭다운을 초기화합니까?그렇다면 해당 이벤트가 포스트백이나 첫 번째 로드에 의해 발생했는지 확인해야 합니다.그래서 당신은 다음과 같은 것을 가져야합니다

if(!IsPostback) d.SelectedValue = "Default"

드롭다운 목록에 대한 데이터 소스 전체에 항목을 복사할 수 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top