我有一个Gridview控件,我在itemtemplate中放置了一个RadioButton。当我点击一个按钮时,我试图获取单选按钮的已检查属性。但是当我单击checked属性时总是返回false。请查看以下代码,让我知道我在哪里犯错。
aspx代码
<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();
}
}
结果将始终在标签中始终为False。我在应用程序中使用Ajaxcontroltoolkit,更新面板中存在Above控件,我甚至尝试在触发器中放置按钮和事件,但结果是相同的。请帮忙。
的问候,
Nuthan A R
答案 0 :(得分:1)
您何时分配并加载DataSource
的{{1}}?请注意,您应该只执行GridView
而不是每次回发。因此,请使用Page.IsPostBack
property。
因此,假设您正在使用if(!IsPostBack)
:
Page_Load