Gridview 컨트롤이 있고 itemtemplate에 RadioButton을 배치했습니다. 버튼을 클릭하면 라디오 버튼의 체크 된 속성을 얻으려고합니다. 하지만 체크 된 속성을 클릭하면 항상 false가 반환됩니다. 아래 코드를 살펴보고 실수 한 부분을 알려주십시오.GridView의 RadioButtons 상태가 포스트 백 이후에 변경되지 않습니다.
영문 코드
<asp:GridView ID="gvDepartments" runat="server" AutoGenerateColumns="False" GridLines="None"AllowPaging="true" CssClass="mGrid" PagerStyle-CssClass="pgr" AlternatingRowStyle-CssClass="alt">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:RadioButton ID="rdbtn" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Label ID="lbl" runat="server"></asp:Label>
<asp:Button ID="btn" runat="server" Text="Save" OnClick="btn_Click" CssClass="button small"/>
코드 뒤에 버튼을 항상 라벨 항상 거짓이 될 것입니다
foreach (GridViewRow row in gvDepartments.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
RadioButton rd = (RadioButton)row.FindControl("rdbtn");
lbl.Text += rd.Checked.ToString();// +rd1.Checked.ToString();
}
}
결과를 클릭합니다. 응용 프로그램에서 Ajaxcontroltoolkit을 사용하고 있습니다. 위의 컨트롤은 업데이트 패널에 있으며 버튼과 이벤트를 트리거에 배치하려고했지만 결과는 동일합니다. 도와주세요.
감사합니다,
Nuthan A부터 R
:
그래서이에 대한
Page_Load
를 사용하는 가정? 모든 포스트 백이 아닌'if (! IsPostBack)'만 수행해야합니다. –데이터 소스 란 무엇입니까? 데이터가 데이터베이스에서오고 있습니까? –
어디 foreach 문을 사용합니까? Page_Load 이벤트 또는 btn_Click? 그것은 Page_Load 내부에있는 경우 값은 항상 거짓이지만 btn_Click 메서드 안에 루프를 배치하면 IsPostBack 속성을 확인하지 않고 페이지로드에서 호출하지 않으면 잘 작동합니다. –