Comment faire pour effacer l'existant dropdownlist les éléments lors de ses changements de contenu?
ddl2 remplit en se basant sur ddl1 valeur sélectionnée avec succès.
Ma question est les données déjà présentes dans ddl2 n'est pas clair avant d'ajouter les nouvelles données ddl2 contenu ne cesse de grandir à chaque fois ddl1 est changé.
<asp:DropDownList ID="ddl1" RunAt="Server" DataSourceID="sql1" DataValueField="ID1" DataTextField="Name2" AppendDataBoundItems="True" AutoPostBack="True">
<asp:ListItem Text="ALL" Selected="True" Value="0"/>
</asp:DropDownList>
<asp:DropDownList ID="ddl2" RunAt="Server" DataSourceID="sql2" DataValueField="ID2" DataTextField="Name2" AppendDataBoundItems="True" AutoPostBack="True">
<asp:ListItem Text="ALL" Selected="True" Value="0"/>
</asp:DropDownList>
<asp:SqlDataSource ID="sql1" RunAt="Server" SelectCommand="sp1" SelectCommandType="StoredProcedure"/>
<asp:SqlDataSource ID="sql2" RunAt="Server" SelectCommand="sp2" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:ControlParameter Type="Int32" Name="ID1" ControlID="ddl1" PropertyName="SelectedValue"/>
</SelectParameters>
</asp:SqlDataSource>
J'ai essayé de re-liaison de données dans le code derrière sur une sélection d'indice de changement et aussi les articles.clair avec peu de succès.
Protected Sub ddl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
ddl2.Items.Clear()
ddl2.DataSource = sql2
ddl2.DataBind()
End Sub
QUESTION
Comment obtenir des éléments présents dans une page asp:dropdownlist libre avant de nouvelles valeurs sont remplies lorsque les dropdownlists contenu est dépendante d'une autre dropdownlists valeur sélectionnée?
Veuillez poster tout le code en VB
OriginalL'auteur DreamTeK | 2013-05-09
Vous devez vous connecter pour publier un commentaire.
À l'aide de
ddl.Items.Clear()
va effacer la dropdownlist cependant, vous devez être sûr que votre dropdownlist est pas:Cette option entraînera la reprise de données pour être ajouté à la liste existante qui sera PAS être effacé avant de liaison.
SOLUTION
Ajouter
AppendDataBoundItems="False"
à votre dropdownlist.Maintenant, quand les données sont rebond il s'efface automatiquement toutes les données existantes à l'avance.
REMARQUE: Cela peut ne pas convenir dans toutes les situations appenddatbound articles peuvent causer votre menu pour ajouter ses propres données à chaque changement de la liste.
TIP TOP
Veux encore un défaut de l'élément de liste de les ajouter à votre liste déroulante, mais besoin de relier des données?
Utilisation
AppendDataBoundItems="False"
pour éviter la duplication des données sur la publication, puis directement après la liaison de votre dropdownlist insérer une nouvelle valeur par défaut de l'élément de liste.si
AppendDataBoundItems="False"
alors à chaque fois que des données est lié à la liste, il s'efface automatiquement la liste à l'avance.OriginalL'auteur DreamTeK
Vous devez effacer votre listbbox avant de liaison:
OriginalL'auteur jason
Veuillez utiliser les informations suivantes
OriginalL'auteur Sheryar Nizar
Seulement 2 étapes simples pour résoudre votre problème
Tout d'abord, vérifiez AppendDataBoundItems de la propriété et de le faire attribuer de fausses
Ensuite effacer tous les éléments à l'aide de la propriété .clear()
OriginalL'auteur Moin Shirazi
juste de compiler votre code et la seule chose qui manque c'est que vous devez Lier votre ddl2 à un vide de la source de données avant de se lier à nouveau comme ceci:
et il a très bien fonctionné
voir la Modifier ses égal à New List(Of String)() Vb.net
OriginalL'auteur Adam