none
Tri avec un SqlDataSource en code Behind RRS feed

  • Question

  • bonjour,

    j'ai créé une gridView alimenté par un SqlDataSource!
    au début je l'avais fait à l'aide des balises ASP, mais vu que j'ai intégré a mon projet un module de recherche, j'ai du passer à l'alimentation de la GV en code Behind, de ce fait, le tri et la pagination ne fonctionne plus!

    J'ai trouvé sur internet/forum que lorsqu'on faisait le mappage des données en code behind, il fallait redevelopper les méthodes de tri et de pagination (soit).

    j'essaie d'utiliser ce code :

    private SortDirection GridViewSortDirection
    {
    get
    {
    if (ViewState["sortDirection"] == null)
    ViewState["sortDirection"] = SortDirection.Descending;
    return (SortDirection)ViewState["sortDirection"];
    }
    set { ViewState["sortDirection"] = value; }
    }

    protected void GridView1_Sorting(object sender, System.Web.UI.WebControls.GridViewSortEventArgs e)
    {
    String sens;
    if (GridViewSortDirection == SortDirection.Descending)
    {
    GridViewSortDirection = SortDirection.Ascending;
    sens = "desc";
    }
    else
    {
    GridViewSortDirection = SortDirection.Descending;
    sens = "asc";
    }


    DataView dv = (DataView) GridView1.DataSource;
    dv.Sort = e.SortExpression + " " + sens;

    GridView1.DataSource = dv;
    GridView1.DataBind();

    }

    en rouge c'est la ou ça coince
    en effet, j'utilise un SqlDataSource pour la liaison avec la BDD, donc mon dv = null, et donc le tri ne fonctionne pas

    une solution pour pouvoir trier avec mon SqlDataSource?

    merki
    mardi 8 janvier 2008 15:32

Réponses

  • Finalement j'ai dans la méthode de tri refait appel a ma méthode de mapping en ajoutant la clause Order By dans ma requete qui est affectée dans le SqlCommand de ma SqlDataSource!
    mercredi 9 janvier 2008 09:55