2009-09-16 6 views
1

J'ai un contrôle déroulant, avec quelques valeurs que j'ai ajoutées en utilisant le concepteur.Bug dans le contrôle déroulant?

Par exemple, "ANY", "Homme", "Femme".

La valeur Homme est réglé sur M

La valeur femelle est réglée sur F

La valeur de tout est vide.

Cependant, bien qu'il semble être vide, je passais des heures à essayer de déboguer une erreur d'analyse ...

Et à ma grande horreur je l'ai découvert était pas vide du tout! La valeur a été définie sur "ANY".

Je souhaite que la valeur soit vide, car ma requête SQL vérifie si la chaîne est vide (ou null).

Mon programme se casse quand il essaie de mettre "ANY" dans un varchar (1) pour des raisons évidentes.

Est-ce que je fais quelque chose de mal? Comment puis-je rendre la valeur par défaut vide?

+0

Juste une idée: Que faire si vous utilisez un espace au lieu d'une chaîne vide? Cela pourrait être une valeur spéciale, ou vous pourriez juste le couper. – OregonGhost

+0

Si vous ne définissez pas explicitement une valeur, la valeur est définie sur celle de la propriété text. –

+0

Problème était j'ai édité les éléments en utilisant Visual Studio Editor. Si vous laissez la valeur vide dans l'éditeur, cela ne met pas Value = "" dans le code, ce qui a causé mes problèmes. – NibblyPig

Répondre

1

Vous devez définir la valeur = « »

<asp:DropDownList id="DropDownList1" runat="server"> 
    <asp:ListItem value="" Text="ANY"> 
    </asp:ListItem> 
</asp:DropDownList> 

Si vous avez encore votre bug vient de mettre la valeur à 0 ou une lettre

1

Vous pouvez avoir une valeur vide, vous pouvez référencer comme ceci:

DropDownList1.SelectedValue; 

OU

DropDownList1.Text; 
+0

La propriété Text n'obtient-elle pas et ne définit-elle pas la même valeur que la propriété SelectedValue? – Phaedrus

+0

Vous avez raison, je viens de lire les docs. Je vais modifier la réponse. –

Questions connexes