TemplateField

Estoy trabajando una aplicación con asp.net 2.0 y con visual basic.net 2005, tengo un gridview al cual le agregue un TemplateField y un itemTemplate tipo checkbox:
<asp:GridView ID="GVPedidos" runat="server" AllowPaging="True" AutoGenerateColumns="False"
BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px"
CellPadding="3" DataSourceID="SqlPedido" Font-Size="8pt"
Style="z-index: 108; left: 246px; position: absolute; top: 126px" Width="729px" DataKeyNames="EJERCICIO,ORDEN_PEDIDO">
<FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
<Columns>
    <asp:TemplateField>
     <ItemTemplate>
          <asp:checkbox ID="CBOPed" runat="server" Checked="True" />
      </ItemTemplate>
     <ItemStyle Width="25px" />
    </asp:TemplateField>
<asp:BoundField DataField="EJERCICIO" HeaderText="Año"  SortExpression="EJERCICIO">
<ItemStyle Font-Size="X-Small" HorizontalAlign="Right" Width="50px" />
  </asp:BoundField>
<asp:BoundField DataField="ORDEN_PEDIDO" HeaderText="Pedido No." SortExpression="ORDEN_PEDIDO">
<ItemStyle Font-Size="X-Small" HorizontalAlign="Right" Width="75px" />
</asp:BoundField>
</Columns>
Este es mi código en asp.net 2.0, he investigado de como es que debo de recorrer el gridview y recuperar el valor del templatefield en visual basic(bueno casi todo lo he encontrado en C# y yo lo paso a visual basic). El problema que tengo es que el valor nunca lo recupera es decir, si en tiempo de corrida en la página yo le pongo un check a un registro, al momento de recorrer el gridview el valor del checkbox me trae el de por default, me trae siempre Falso en lugar de traerme verdadero.
Protected Sub BPFac_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BPFac.Click
Dim LeastOneRow As Boolean = False
    For Each row As GridViewRow In GVPedidos.Rows
       Dim cb As CheckBox = row.FindControl("CBOPed")
          If cb IsNot Nothing AndAlso cb.Checked Then
            LeastOneRow = True
            Dim productID As Integer = Convert.ToInt32(GVPedidos.DataKeys(row.RowIndex).Value)
          End If
   Next
End Sub
Este código lo baje de un ejemplo de la página oficial de asp, www.asp.net, solo que no me funciona, como digo si un registro le pongo un check siempre me trae su valor por default que es falso y no verdadero por estar con check
No se si es que debo de ver las propiedades del gridview o del templatefield o si hay algún error en el código...

1 respuesta

Respuesta
-1
Ok, entiendo que tienes un GridView y haces las acciones en el siguiente orden:
1.- Traes la info de la Base de Datos, y la presentas en pantalla,
2.- El usuario da clic en un check box para elegir productos
3.- El usuario sale de la página
4.- El usuario regresa a la página a ver el listado y los check box están en su valor original (Checked = false )
Si lo anterior es correcto, entonces hace falta que entre el paso 2 y el paso 3 guardes la información en la base de datos, después para poder mostrar el check box de acuerdo a lo que hay guardado en la Base de Datos puedes poner un delegado para el OnDataBinding del GridView y así establecer si el Check box está elegido o no cuando traes los datos de la BD (justo al hacer el databinding)
Avísame si te funcionó la info

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas