Encontré un caso truculento el día de hoy. Tengo un ListView
que tiene un ItemTemplate
dentro del cual estoy poniendo controles de tipo CheckBox
. El usuario puede elegir varios de éstos, y cuando se oprime un botón necesito validar la cantidad de casillas que seleccionó.
Aquí está mi ListView
y el botón.
- <asp:ListView ID="ListadoPlanes" runat="server"
- ItemPlaceholderID="AquiVanItems" DataSourceID="ODSPlanes">
- <LayoutTemplate>
- <table width="100%" border="0" cellspacing="0" cellpadding="3">
- <tr>
- <td class="TdDegra">Seleccione hasta 4 opciones</td>
- <td class="TdDegra">Nombre</td>
- </tr>
- <asp:PlaceHolder ID="AquiVanItems" runat="server"></asp:PlaceHolder>
- </table>
- </LayoutTemplate>
- <ItemTemplate>
- <tr>
- <td>
- <asp:CheckBox ID="Plan" runat="server" />
- <asp:HiddenField ID="PlanId" runat="server" Value='<%#Eval("idplan")%>' />
- </td>
- <td><%#Eval("Nombre")%></td>
- </tr>
- </ItemTemplate>
- </asp:ListView>
- <asp:Button ID="Button1" runat="server" Text="Button" />
En la línea 15 estoy creando el CheckBox
con el ID igual a “Plan”. Necesito guardar, en cada renglón, el ID de mi tabla, que se llama “idplan”, por lo que en la línea 16 creo un HiddenField
y establezco su valor con mi id. Ahora en cada renglón tendré una casilla de verificación y un campo con el id de mi tabla.
Ahora bien, para iterar en los renglones del ListView
e ir checando cada CheckBox
, usa el siguiente código:
- Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim CuentaCtrl As Int16 = 0
- Dim i As Integer
- Dim ElCheckBox As CheckBox
- Dim ElHidden As HiddenField
- For i = 0 To ListadoPlanes.Items.Count - 1
- ElCheckBox = CType(ListadoPlanes.Items(i).FindControl("Plan"), CheckBox)
- ElHidden = CType(ListadoPlanes.Items(i).FindControl("PlanId"), HiddenField)
- If ElCheckBox.Checked = True Then
- CuentaCtrl = CuentaCtrl + 1
- 'Si necesitas hacer algo con tu id en este ciclo,
- 'accedelo usando ElHidden.Value
- End If
- Next
- If CuentaCtrl > 2 Or CuentaCtrl = 0 Then
- 'Hacer algo
- Else
- 'Hacer algo
- End If
- End Sub
En la iteración estoy revisando las opciones seleccionadas y al final solamente tomo una decisión dependiendo de cuántas casillas están marcadas.
¡Suerte!
Saludos amigo, excelente aporte…
Tendrás algún ejemplo donde tenga un botón dentro de mis iteraciones donde ejecute una serie de acciones sobre el ítem al que pertenece el botón???
Gracias de antemano…
@ingMig