Merci pour ta réponse,
En fait j'ai résolu partiellement mon pb.
C'est bien la fonction FiltrerParIdRecupere que j'ai ajoutée récemment, appelée au
Load du sqldatasource, qui m'empéchait de récupérer la valeur de la
dropdownlist.
protected void FiltrerParIdRecupere(object sender, EventArgs e) > { > //Filtrer Gridview Liste Projets si id récupéré > if (Request.QueryString["id"] != null) > { > SqlDataSourceListeProjets.FilterExpression = "id_projet ='{0}'"; > QueryStringParameter id_projet = new QueryStringParameter(); > id_projet.QueryStringField = "id"; > SqlDataSourceListeProjets.FilterParameters.Add(id_projet); > gvListeProjetsPourArbitrage.DataBind(); > } > }
Elle modifiait le sqldatasource en ajoutant 1 filtre, calqué sur l'id récupéré
en QueryString. Or, si ma page pour x raison, ne comportait pas d'ID ou plutôt 1
ID vide, page.aspx?id=, alors le filtre se faisait qd même aussi bien sur
l'Update que sur le Select. Et donc l'Update WHERE id = '', ne donnait rien.
Forcément.
Du coup, j'ai blindé ma structure de contôle de la fonction
FiltrerParIdRecupere de la façon suivante :
if (Request.QueryString["id"] != null && Request.QueryString["id"].Length > 0)
{ ...
Mais j'ai aussi décidé d'appeler cette fonction non plus au Load du
SqlDataSource, mais à l'évènement Selecting.
Et là j'ai 1 nouveau souci : c'est comme si l'évènement Selecting n'avait pas
lieu qu'1 fois (lorsque la commande Sql est exécutée), mais des dizaines de fois
:
J'ai mis 1 point d'arrêt, et FiltrerParIdRecupere est appelé des dizaines de
fois, jusqu'à ce que j'ai une erreur de type 'dépassement de la pile stack
overflow...'. Je pense que c'est le
SqlDataSourceListeProjets.FilterParameters.Add(QueryStringParameter id_projet)
qui est débordé.
Herwin
|