ASP.NET - Paginación del filtro de un gridview

 
Vista:

Paginación del filtro de un gridview

Publicado por Ezequiel (8 intervenciones) el 29/08/2018 14:06:20
En el título aclaro lo que quiero hacer. Tengo un gridview con un campo de texto para filtrar, eso me funciona bien, el tema que el paginado del gridview no me PAGINA LOS DATOS FILTRADOS. Me ha pasado que al paginar me volvía a cargar todos los datos sin filtro y ahora cuando quiero paginar no me trae nada pero no me salta error tampoco.

Les paso el codigo de mi GridView y las funciones que utilizo para filtrar y paginar. Desde ya muchas gracias por su ayuda.

ARCHIVO ASP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<div class="row row-auto">
    <asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
        runat="server" AutoGenerateColumns="False" AllowPaging="True" BackColor="White" BorderColor="#336666" BorderStyle="Double" BorderWidth="3px" CellPadding="4" GridLines="Horizontal" OnPageIndexChanging="GridView1_PageIndexChanging" DataSourceID="SqlDataSource1">
        <Columns>
            <asp:BoundField DataField="c01" HeaderText="c01" ItemStyle-Width="30" SortExpression="c01">
            </asp:BoundField>
            <asp:BoundField DataField="c02" HeaderText="c02" ItemStyle-Width="150" SortExpression="c02">
            </asp:BoundField>
            <asp:BoundField DataField="c03" HeaderText="c03" ItemStyle-Width="150" SortExpression="c03">
            </asp:BoundField>
        </Columns>
        <FooterStyle BackColor="White" ForeColor="#333333" />
        <HeaderStyle BackColor="#336666" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#336666" ForeColor="White" HorizontalAlign="Center" />
        <RowStyle BackColor="White" ForeColor="#333333" />
        <SelectedRowStyle BackColor="#339966" Font-Bold="True" ForeColor="White" />
        <SortedAscendingCellStyle BackColor="#F7F7F7" />
        <SortedAscendingHeaderStyle BackColor="#487575" />
        <SortedDescendingCellStyle BackColor="#E5E5E5" />
        <SortedDescendingHeaderStyle BackColor="#275353" />
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="select c01,c02,c03 from ta200J1" DataSourceMode="DataSet"></asp:SqlDataSource>
</div>

ARCHIVO CS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
protected void LbtnBuscar_Click(object sender, EventArgs e)
{
    LlenarDatos();
}
 
private List<String> LlenarDatos()
{
    GridView1.DataSourceID = null;
    String conectar = "FileDsn=C:/Users/Analia/source/repos/Prueba/Prueba/acler_muleto.dsn; UID=consuweb; PWD=flexphp";
 
    OdbcConnection conexion = new OdbcConnection();
    conexion.ConnectionString = conectar;
    conexion.Open();
    OdbcCommand oCmd3 = new OdbcCommand("SELECT c01, c02, c03 FROM ta200J1 WHERE c01 = 627", conexion); //va idUsuario
   // oCmd3.Parameters.Add("@c01", OdbcType.VarChar).Value = 627;
    OdbcDataReader dr3 = oCmd3.ExecuteReader();
 
    dt = new DataTable();
    // agregamos las columnas y el tipo de dato que se manejara en cada una de ellas
    dt.Columns.AddRange(new DataColumn[3] { new DataColumn("c01", typeof(string)),
           new DataColumn("c02", typeof(string)),
           new DataColumn("c03",typeof(string)) });
 
    // agregamos las columnas
    lista = new List<string>();
    while (dr3.Read())
    {
        String result0 = dr3[0].ToString();
        String result1 = dr3[1].ToString();
        String result2 = dr3[2].ToString();
 
        lista.Add(result0);
        lista.Add(result1);
        lista.Add(result2);
 
        dt.Rows.Add(result0, result1, result2);
 
    }
    GridView1.DataSource = dt;
    GridView1.DataBind();
    return lista;
}
 
 
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.PageIndex = e.NewPageIndex;
    GridView1.DataSource = LlenarDatos();
    GridView1.DataBind();
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder