Проверенное состояние RadioButton в GridView не изменяется после обратной передачи

1

У меня есть элемент управления Gridview, и я поместил RadioButton в itemtemplate. Когда я нажимаю кнопку, я пытаюсь получить проверенное свойство переключателя. Но когда я нажимаю проверенное свойство, всегда возвращается 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();
    }
}

Результат всегда будет всегда ложным в метке. Я использую Ajaxcontroltoolkit в приложении, над элементами управления присутствуют в панели обновления, и я даже пытался помещать кнопку и событие в триггеры, но результат такой же. Пожалуйста помоги.

С Уважением,
Nuthan AR

  • 3
    Когда вы назначаете и загрузите DataSource в GridView ? Обратите внимание, что вы должны делать это только if(!IsPostBack) а не при каждой обратной if(!IsPostBack) .
  • 0
    Что такое источник данных, данные поступают из базы данных?
Показать ещё 2 комментария
Теги:

1 ответ

1
Лучший ответ

Когда вы назначаете и загружаете DataSource GridView? Обратите внимание, что вы должны сделать это, только if(!IsPostBack) а не на каждой обратной if(!IsPostBack). Поэтому используйте свойство Page.IsPostBack.

Предположим, что вы используете Page_Load для этого:

protected void Page_Load(Object sender, EventArgs e)
{
    if(!Page.IsPostBack)
    {
        DataBindGridView(); // method that assigns DataSource and calls DataBind
    }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню