Salut à toutes et à tous,
Soit une listbox (autopostback à true) est databindée par une sqldatasource.
Soit une autre listbox contenant des éléments correspondant à l'élément sélectionné de la première listbox est databindé à une autre sqldatasource dont le paramètre de la clause where est le control de la première listbox. Cette liste a son autopostback à false.
Soit un bouton agissant sur la seconde listbox.
A chaque click du bouton, c'est à dire des postback, l'évènement SelectedIndexChange de la première listbox est repassé, or l'index sélectionné n'a pas changé puisque le postback est dû au click d'un bouton qui n'agit ni ne prend aucun élément de la première listbox.
La seconde listbox est à chaque click du bouton réinitialisée. Je pense que dû au fait du SelectedIndexChange de la première listbox, la second est rebindée, même si son databind n'est pas dans l'évènement SelectedIndexChange.
Pourquoi le SelectedIndexChange repasse-t-il à chaque fois et comment faire pour éviter cela ? Pour que le SelectedIndexChange ne passe que quand l'index sélectionné est effectivement changé.
En fait, après plusieurs vérifications, passages pas à pas et affichage des trace, je me suis rendu compte qu'il passe sur tous les évènements SelectedIndexChange de toutes les listbox de la page. Il semblerait donc qu'il rebind toutes les listbox à tous les postback. Pourquoi ?
J'avais un code semblable qui fonctionnait, mais j'ai beau chercher dans les listbox, les codes et les sqldatasource, ne je vois pas la différence qui causerait cela.
Merci de vos z'avis z'avisés,
Jean-marc
Partager