나는 ASPX GridView
의 dataItemTemplate에 RadioButtonList
이 있습니다. ButtonClick 이벤트에서 각 RadioButtonList
에 대해 선택된 인덱스를 원합니다. 버튼 클릭 이벤트에서 radioButton 목록의 selectedIndex는 -1입니다. RadioList에서 버튼 클릭 이벤트에서 사용자가 선택한 값을 기억하게하려면 어떻게합니까? 그리드RadioButtonList가 버튼에서 값을 잃습니다. 클릭
EnableCallbacks 그리드에 대한
의 EnableViewState 사실이다
이 RadioList에 대한 AutoPostBack을이 거짓 사실이다.<DataItemTemplate>
<dxe:ASPxRadioButtonList ID="m_RadioList" runat="server"
Border-BorderStyle="None" ClientInstanceName="RadioList"
OnInit="OnRadioListInit">
<Border BorderStyle="None" />
<Items>
<dxe:ListEditItem Text="M" Value="0" />
<dxe:ListEditItem Text="F" Value="1" />
<dxe:ListEditItem Text="NA" Value="2" />
</Items>
</dxe:ASPxRadioButtonList>
</DataItemTemplate>
protected void OnASPxButtonClick(object sender, EventArgs e)
{
for (int row = 0; row < m_ASPxGridView.VisibleRowCount; row++)
{
ASPxRadioButtonList radio = m_AccessPoint_UsersASPxGridView.FindRowCellTemplateControl(row,null, "m_RadioList") as ASPxRadioButtonList;
int r = (int) radio.SelectedIndex;
}
}
에 저장하는 것입니다 . ASP.NET 페이지 수명주기를 이해하는 것이 중요합니다. 페이지로드에 대한 컨트롤을 데이터 바인딩 한 다음 해당 버튼을 클릭하면 페이지가 다시로드되고 button_click 이벤트를 실행하기 전에 페이지로드 이벤트의 모든 내용이로드됩니다. 그래서 본질적으로 그것은 데이터 바인딩을 다시 초기화합니다. 포스트 백에서 databind하지 않으면 프레임 워크는 viewstate를 보게됩니다. –