GridView中的RadioButtons的检查状态在回发后不会改变

时间:2014-06-11 11:01:59

标签: c# asp.net

我有一个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

1 个答案:

答案 0 :(得分:1)

您何时分配并加载DataSource的{​​{1}}?请注意,您应该只执行GridView而不是每次回发。因此,请使用Page.IsPostBack property

因此,假设您正在使用if(!IsPostBack)

Page_Load