Tengo un GridView que me muestra en una tabla unos datos que saco a traves de un SqlDataSource, estos datos mes los muestra correctamente, pero para mostrar lo que seria el asunto de un mensaje poniendo el texto en un boton utilizo el evento del load del GridView para cargar el asunto en el boton.
He activado la paginacion a traves del atributo AllowPaging, el problema es que a la hora de la ejecucion y pasar a otra pagina con la paginacion, no llama al evento load del gridView y no me carga los asuntos en el boton, me pone el texto predefinido que he puesto yo.
Soy novato en asp y vb y no se como solucionar esto xD
Codigo de aspx
Código:
Codigo de aspx.vb<asp:GridView ID="GVdistribucion" Width="90%" runat="server" CssClass="table" AutoGenerateColumns="False" BorderWidth="1" DataKeyNames="codigo" DataSourceID="SQLdistribucion" AllowPaging="True"> <Columns> <asp:TemplateField HeaderText="Leido" HeaderStyle-Width="20%"> <ItemTemplate> <asp:CheckBox runat="server" ID="CBleido" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Asunto" HeaderStyle-Width="50%" > <ItemTemplate> <asp:Button ID="Basunto" runat="server" CommandName="verasunto" CommandArgument="<%# CType(Container,GridViewRow).RowIndex %>" Text="Otro asunto" /> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="fecha" HeaderText="Fecha" DataFormatString="{0:d}" HeaderStyle-Width="30%" Visible="True" /> </Columns> </asp:GridView>
Código:
Protected Sub GVdistribucion_Load(sender As Object, e As System.EventArgs) Handles GVdistribucion.Load Dim dv As DataView Dim GV1 As GridView = GVdistribucion Dim boton As Button 'Se convierte la consulta del SqlDataSource en un DataView dv = CType(SQLdistribucion.Select(DataSourceSelectArguments.Empty), DataView) 'Recorre la tabla que se ha creado fila por fila For i As Integer = 0 To GV1.Rows.Count - 1 Try 'Obtiene el boton de la fila en la que se esta boton = DirectCast(GV1.Rows.Item(i).FindControl("Basunto"), Button) 'Añade el asunto obtenido del DataView al boton boton.Text = CType(dv.Table.Rows(i)(2), String) Catch End Try Next End Sub