SelectedIndexChanged 이벤트 핸들러가 이전 인덱스를 가져오는 중입니다.
문제
내가 처리하고 있어 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"
드롭다운 목록에 대한 데이터 소스 전체에 항목을 복사할 수 있습니까?
제휴하지 않습니다 StackOverflow