2010-04-20 3 views
0

Je suppose que c'est simple, mais je ne pouvais pas le comprendre.comment utiliser select type dans Dropdownlist en C# sans déclarer comme un élément de la liste

i ont une liste déroulante avec des valeurs

America 
Asia 
Europe 

je dois l'affichage ddl comme Sélectionner le type et quand je clique sur le dropdownlist pour voir les valeurs, il doit afficher les trois valeurs, mais je ne devrait pas utiliser Select Type comme élément de liste et ne devrait pas être affiché dans la liste. Il ne devrait être utilisé que comme texte par défaut dans ddl.

Merci,

+1

Voici exactement votre question: http://stackoverflow.com/questions/524780/c-combobox-in-dropdownlist -style-comment-faire-je-mettre-le-texte –

+0

@Petar, j'ai le sentiment que c'est ASP.NET. Vous pouvez définir par programme la propriété Text d'un DDL, mais il ne sera pas rendu. –

+0

@Anthony: c'est asp.net avec C# – superstar

Répondre

1
<asp:DropDownList runat="server"> 
    <ListItem Text="Select Type" Value="0" /> 
    <ListItem Text="America" Value="1" /> 
    <ListItem Text="Asia" Value="2" /> 
    <ListItem Text="Europe" Value="3" /> 
</asp:DropDownList> 

Je voudrais ajouter un événement "onclick" à la <asp:DropDownList> comme ceci:

<asp:DropDownList runat="server" onclick="javascript:RemoveDefault(this);"> 

et ont une fonction javascript RemoveDefault() qui a fait ce qui suit:

function RemoveDefault(select) { if (select.options[0].value == "0") select.remove(0); } 
+0

Avez-vous un événement onclick pour une liste déroulante? – superstar

+0

@superstar, ce serait un événement javascript dans ce cas. Une approche plus sûre serait d'ajouter l'attribut "onclick" dans le code derrière. Quelque chose comme 'ddl.Attributes.Add (" onclick "," javascript: RemoveDefault (this) ");' Cela suppose également que quelqu'un * clique * sur la liste. –

2

Windows Forms?

Si vous remplissez votre combobox comme ceci:

 this.comboBox1.Items.Add("Select..."); 
     this.comboBox1.Items.Add("America"); 
     this.comboBox1.Items.Add("Asia"); 
     this.comboBox1.Items.Add("Yurrup"); 

Ensuite, branchez un événement DropDown, pour enlever la première option sur la première liste déroulante.

private void comboBox1_DropDown(object sender, EventArgs e) 
    { 
     if (comboBox1.Items[0].ToString() == "Select...") 
     { 
      comboBox1.Items.RemoveAt(0); 
     } 
    } 
+0

Je suppose que vous avez écrit ceci avant qu'il ne soit correctement étiqueté – hunter

+0

Ceci est toujours utile !! – superstar

+0

oui j'ai fait - vu le renvoi à l'autre Q après que j'ai posté ceci. – Cheeso

0

Vous devez créer un nouvel élément, assurez-vous qu'il est en première position dans la liste, puis ignorer ce programme lorsque l'utilisateur sélectionne. Ou, comme le suggère Cheeso, supprimer le premier élément «faux» dans la première liste déroulante.

1

J'ajouterais l'élément ListItem à la liste avec son texte défini sur "Select Type" et sa valeur définie sur une chaîne vide. Dans le code derrière lorsque vous manipulez la liste, vous géreriez par programme la possibilité d'une valeur de chaîne vide sélectionnée.

Donc, étant donné

ddl.Items.Add(new ListItem("Select Type", string.Empty)); 
ddl.Items.Add(new ListItem("America", "America")); 
ddl.Items.Add(new ListItem("Asia", "Asia")); 
ddl.Items.Add(new ListItem("Europe", "Europe")); 

vous feriez le manipuler comme

if (ddl.SelectedValue != string.Empty) 
{ 
    // do what you need to do 
} 
else 
{ 
    // OK to ignore? re-prompt user? etc. 
} 
Questions connexes