J'ai un menu déroulant qui a une méthode qui lie les données à elle:ASP.NET - DropDown DataBinding (? Rebind)
dropDown.Items.Clear()
dropDown.AppendDataBoundItems = True
Select Case selType
Case SelectionTypes.Empty
dropDown.Items.Insert(0, New ListItem("", ""))
Case SelectionTypes.Any
dropDown.Items.Insert(0, New ListItem("ANY", ""))
Case SelectionTypes.Select
dropDown.Items.Insert(0, New ListItem("Select One", ""))
End Select
BindDropDown(val)
La méthode BindDropDown définit simplement la source de données, datakeyname, datavaluename, puis databinds les données.
Pour une raison que je ne peux pas éviter, je dois parfois appeler cette méthode deux fois. Quand il est appelé deux fois, tous les éléments de databound apparaissent deux fois, mais l'élément supérieur (celui que j'insère manuellement) n'est là qu'une seule fois.
Est-ce que ASP fait quelque chose de bizarre quand je double deux fois même si j'efface la liste? Ou faut-il faire quelque chose avec viewstate/controlstate?
EDIT
La page entière, et ce contrôle a EnableViewState = "false"
EDIT 2
La liste déroulante est à l'intérieur d'une vue sous forme. Une fois la valeur sélectionnée définie, je dois redéfinir la liste déroulante juste au cas où la valeur sélectionnée ne serait pas là [parce que c'est un utilisateur inactif]. Après cela, formview duplique les éléments de la base de données.
Je ne peux pas ajouter la valeur après, parce que quand j'essaie de définir SelectedValue = "", il dit qu'il n'est pas dans la liste des éléments, mais quand j'utilise AppendDataBoundItems et le fais avant le databind, il me laisse définir the SelectedValue = "". –