Member 14076592 Ответов: 1

Я не могу получить значение checkbox в listview ASP.NET


это мой код aspx :


<asp:ListView ID="ListViewHRDFormIzin" runat="server" DataSourceID="SqlDataStaffHRDFormIzin" DataKeyNames ="STAFF_NIK" enableviewstate="false">
     <LayoutTemplate>
         <table id="dataTable" class="table table-bordered striped data" align="left">
             <thead style="background-color:#4877CF">
                 <!-- add checkbox -->
                 <th style="text-align:center; color:white">Check</th>
                 <th style="text-align:center; color:white">NIK</th>
             </thead>
             <asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
         </table>
     </LayoutTemplate>
     <ItemTemplate>
         <tr>
             <td>
                 <asp:CheckBox ID="CheckBox1" runat="server"  />
             </td>
             <td style="text-align:center"><asp:Label ID="lbl" runat="server" Text='<%# Eval("STAFF_NIK")%>' ></asp:Label></td>
             <td style="text-align:center"><asp:LinkButton ID="lnkSelect" Text='DETAIL' CommandName="Select" runat="server" ><img src="img/detail.png" width="50px" height="50px" /></asp:LinkButton></td>
         </tr>
     </ItemTemplate>
     <EmptyDataTemplate>Data Izin Karyawan Tidak diketemukan</EmptyDataTemplate>
     <EmptyItemTemplate>Data Izin Karyawan Tidak diketemukan</EmptyItemTemplate>
 </asp:ListView>

 <asp:Button  ID="Button1"  visible="true" runat="server"
 Text="Get Data" class="btn btn-success" />


это мой класс vb, который обрабатывает страницу aspx :

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    'get data from chekced checkbox
    Dim ChkValue As New List(Of String)()
    For Each item As ListViewItem In ListViewHRDFormIzin.Items
        Dim ck As CheckBox = DirectCast(item.FindControl("CheckBox1"), CheckBox)
        If ck.Checked Then
            ChkValue.Add(DirectCast(item.FindControl("lbl"), Label).Text)
        End If
    Next
    For Each itms As String In ChkValue
        Response.Write("<script>alert('Value Selected: " + itms + "')</script>")
    Next

    Response.Write("<script>window.location.href="/KB/answers/HRDFORMIZIN.aspx";</script>")

End Sub


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

Я пробовал что-нибудь подобное, помещал привязочные данные связанного Listview в Page_Load, изменял для использования и все такое. но все равно, когда я нажимаю кнопку 1, ее значение не отображается. и код всегда запускает конец кода ( ссылка на домашнюю страницу.aspx), я понятия не имею, так как я новичок в этом деле vb.net

[no name]

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

Member 14076592

я так и сделал, но почему-то не могу понять его ценности . этот listview получает свои данные из SqlDataSource на странице aspx. я не собираюсь снова связывать его с кодом позади

Richard Deeming

"... поместите данные привязки связанного Listview в Page_Load ..."

Вы убедились, что он находится в пределах if (!IsPostBack) { ... } блок?

1 Ответов

Рейтинг:
0

Vincent Maverick Durano

Ваш код выглядит хорошо для меня. Я бы посоветовал вам отладить свой код, установить точку останова в событии нажатия кнопки и войти в код. Проверьте, входит ли он в ваш for-each петля. Если это не так, то ваш источник данных ListView пуст.