Kaan Öztürk Ответов: 2

Не удается получить значение checkbox checked в ретрансляторе ASP.NET


Aspx
<asp:Repeater ID="rptOzellik" runat="server">
     <ItemTemplate>

      <div class="col-md-5 pad10">
         <asp:CheckBox ID="check" runat="server" />
         <asp:HiddenField ID="OzellikID" Value='<%#Eval("OzellikId") %>' runat="server" />

       </div>


     </ItemTemplate>
     </asp:Repeater>


с фоновым кодом:
int[] OzellikIdArray = new int[rptOzellik.Items.Count];
         int i = 0;
         foreach (RepeaterItem item in rptOzellik.Items)
         {
             HiddenField OzellikID = (HiddenField)item.FindControl("OzellikId");
             var checkBox = (CheckBox)item.FindControl("check");
             if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
             {

                 if (checkBox.Checked)
                 {

                     OzellikIdArray[i] = int.Parse(OzellikID.Value.ToString());
                 }

             }
             i++;
         }


Я проверил несколько чекбоксов, но checkBox. checked всегда возвращал false.
Чего мне не хватает ?

Что я уже пробовал:

Я много раз пытался найти решение, но так и не смог его решить

2 Ответов

Рейтинг:
4

Karthik_Mahalingam

Я проверил ваш код, он работает нормально.
Вам придется переместить код привязки данных внутрь !Page.IsPostBack

if (!Page.IsPostBack)
            {
                rptOzellik.DataSource = yourDataSource;
                rptOzellik.DataBind();
            }


Kaan Öztürk

ты потрясающий мой друг :)

Karthik_Mahalingam

добро пожаловать :)

Рейтинг:
0

BobbyStrain

Что вам нужно сделать, так это перебрать элементы управления, проверяя каждый из них, чтобы увидеть, является ли он флажком.Если это так и имеет правильное название, проверьте состояние.