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...
<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 de dbarriguete
-1