아래에 설명 된 문제는 "내 컨트롤이 페이지가로드 될 때마다 같은 값을 표시하는 것과 거의 정반대입니다. 바람직.ListBox는 데이터 바인딩 후도 게시 된 값을 유지합니다.
내가 심지어 포스트 백에서 페이지로드 이벤트에 바인딩되고있는 목록 상자가 있습니다.
selectedIndex의에 대한 이벤트 핸들러가 명중 변경된, 제어는 어떻게 든에도 불구하고 게시 된 값을 가지고 이미 다시 바인딩되었으므로이 시점에서 selectedindex가 없어야합니다.
누구나 가능할 수있는 방법을 알고 있습니다.
편집 :
가 selectedIndex의 참으로 당신은 다음과 같은 간단한 마크 업 형태로 만들 수 있습니다 재설정되고 있음을 입증하려면 다음 코드와
<label for="textbox1">Original Posted Value: </label>
<asp:TextBox runat="server" ID="textbox1" />
<asp:DropDownList runat="server" ID="dropdown" OnSelectedIndexChanged="dropdown_SelectedIndexChanged" AutoPostBack="true" />
<label for="textbox2">Value at point handler is hit: </label>
<asp:TextBox runat="server" ID="textbox2" />
.cs의를
protected void Page_Load(object sender, EventArgs e)
{
textbox1.Text = dropdown.SelectedIndex.ToString();
dropdown.DataSource = new string[] { "none", "A", "B", "C" };
dropdown.DataBind();
}
protected void dropdown_SelectedIndexChanged(object sender, EventArgs e)
{
textbox2.Text = dropdown.SelectedIndex.ToString();
}
두 번째 텍스트 상자의 값은 항상 0이됩니다.