Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Aiuto gestione ricerca paginazione in gridview

    Ciao, osservando alcuni esempi relativi alla paginazione in un grid view e al relativo ordinamento ho provato a mettere in pratica quanto imparato... ma ho bisogno del vostro aiuto

    Ho un problema con il bind:

    se cambio pagina, non viene gestito correttamente l'ordinamento
    se imposto un filtro, non viene gestito correttamente l'ordinamento
    se sono in una pagina successiva il bind non è corretto

    da alcune prove ho capito che il problema è nel bind ma non so come risolverlo per gesire:

    paginazione
    filro
    ordinamento

    usando la logica sotto indicata


    ho già provato a spostare il BindGrid(); nel postback ma se funziona una cosa, smette di funzionare l'altra (parlo di paginazione, filro, ordinamento )

    Graaaaaaaazie!


    protected void Page_Load(object sender, EventArgs e)
    {
    msnHelper = MsnHelper.MsnHelperFactory();
    OpenSqlConnection();

    BindGrid();

    if (!this.Page.IsPostBack)
    {


    }
    }

    private void BindGrid()
    {
    DataSet dsElenco;
    dsElenco = msnHelper.DataHelper.GetDedede(sqlConnection);
    if (dsElenco.Tables[0].Rows.Count > 0)
    {
    // Imposto il filtro presente nel ViewState
    if (ViewState["LastFilter"] != null)
    {
    dsElenco.Tables[0].DefaultView.RowFilter = ViewState["LastFilter"].ToString();
    }

    gwEC.DataSource = dsElenco.Tables[0];
    gwEC.DataBind();
    }
    }


    protected void btnRicerca_Click(object sender, EventArgs e)
    {
    string RicercaNumero_Filter = tbRicercaNumero.Text;
    string RicercaCliente_Filter = ddlRicercaCliente.SelectedValue;

    string IDCliente_Filter = ddlRicercaCliente.SelectedValue;

    StringBuilder sb = new StringBuilder();

    if (RicercaNumero_Filter != "")
    sb.AppendFormat("(NumeroEstrattoConto = {0})", RicercaNumero_Filter);

    ...

    string s = sb.ToString();
    ViewState["LastFilter"] = s; // persist filter on postback
    BindGrid();
    // ritorna alla prima pagina
    gwEC.PageIndex = 0;
    }


    protected void gwEC_Sorting(object sender, GridViewSortEventArgs e)
    {
    GridViewSortExpression = e.SortExpression;
    int pageIndex = gwEC.PageIndex;
    gwEC.DataSource = SortDataTable(gwEC.DataSource as DataTable, false);
    //BindGrid();
    gwEC.DataBind();
    gwEC.PageIndex = pageIndex;
    }

    protected void gwEC_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
    gwEC.DataSource = SortDataTable(gwEC.DataSource as DataTable, true);
    gwEC.PageIndex = e.NewPageIndex;
    //BindGrid();
    gwEC.DataBind();
    }
    Iceberg

  2. #2
    gwEC.DataBind();
    gwEC.PageIndex = pageIndex;

    bhe, mi salta nell'occhio solo che queste dovrebbero essere invertite
    Fiore Bat - www.bcscommunity.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.