2009-01-08 7 views
0

J'ai lié ma ListBox à certaines données.Comment empêcher que selectedValue ne change lors de l'appel de la méthode FillQ de tableAdapter?

Le problème est que lorsque j'appelle la méthode myTableAdapter.Fill (..), SelectedValue se transforme en quel que soit le premier ID d'élément dans la liste. Bien que "Valeur sélectionnée" dans VS ne soit pas lié n'importe où (voir l'image). alt text http://img370.imageshack.us/img370/2548/ss20090108212745qz2.png

Comment éviter ce comportement, s'il vous plaît?

Merci beaucoup d'avoir aidé.

Répondre

1

Vous ne devez pas être lié à chaque demande. Si vous devez absolument lier sur chaque requête pour une raison quelconque, vous devez définir SelectedIndex sur la ListBox manuellement. En effet, la méthode Fill efface d'abord la liste puis crée de nouveaux éléments de liste pour les données récupérées.

1

La façon la plus simple que je peux penser est de changer votre table de code de remplissage de l'adaptateur à quelque chose comme ceci:

string preSelected = myDropDownList.SelectedValue; 
myTableAdapter.Fill(myDataTable); 
myDropDownList.SelectedValue = preSelected;

Vous courrez dans un problème si l'élément n'existe plus, vous voudrez peut-être ajouter une condition pour vérifier cela.

Questions connexes