Salut à tous,

Bon, je l'avoue le titre est un peu bof, mais c'est ce que j'ai trouvé de mieux pour caractériser mon problème.

J'ai un Gridview imbriqué dans un Gridview, dans lequel j'ai mis des Checkbox en première colonne (dans un <ItemTemplate>). Ces Checkbox's me permettent de sélectionner plusieurs lignes pour pouvoir leur appliquer un traitement via une DropDownList et un Button tous deux externes au Gridview.
J'espère que jusque là c'est clair

Au click de chaque CheckBox je déclanche un OnCheckedChanged="xxx" (avec AutoPostBack="true") car j'ai un petit traitement à appliquer avant d'activer la sélection.
J'espère que je suis toujours clair

Tout cela fonctionne parfaitement.

Maintenant grâce à divers DropDownList et TextBox je peux filter mon gridview, en appliquant ce filtre à mon SqlDataSource:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
SqlDataSource_xxx.FilterExpression = FilterExpression.ToString();
Le filtre fonctionne très bien et me retourne les enregistrements souhaités.

Maintenant je veux en sélectionner quelques-uns grâce à mes CheckBox's...
Et là c'est le drame.

Il prends le Click, passe dans l'AutoPostBack (la page se recharge) mais reste à la même valeur: si il était checked il reste checked, si il était unchecked il reste unchecked.
En mode Debug on voit qu'il ne prend jamais en compte l'Event OnCheckedChanged.



Pour résumer:
Sans Filtre, l'évenement OnCheckedChanged est appelé et réalisé.
Avec Filtre, l'évenement OnCheckedChanged n'est appelé et pas réalisé.

Si quelqu'un peut m'aider à comprendre pourquoi ...
Merci, et bon casse-tête.

Big Ben.