2012-02-08 14 views
9

Quiero seleccionar un elemento en la lista desplegable en ASP.NET escrito con VB.NET abajo - Tengo valores y textos en cuadro de lista como esta:de selección desplegable lista de elementos findbytext sin vb.net mayúsculas y minúsculas

 
Volvo 
Audi 
etc... 

Pero los valores que vienen de otro lugar en mayúsculas ... VOLVO, AUDI ..

este código:

dropdownlist.FindByValue("CAPITAL") 

no está funcionando y dando null de Volvo .. por favor ayuda.

+0

Ningún método nativo para eso ... tendrás que escribir el tuyo propio. La respuesta de Tim es buena, por ejemplo. –

Respuesta

14

Una forma sería LINQ:

Dim volvoItem = dropdownlist.Items.Cast(Of ListItem)(). 
    FirstOrDefault(Function(i) i.Text.Equals("Volvo", StringComparison.InvariantCultureIgnoreCase)) 

C#:

var volvoItem = dropdownlist.Items.Cast<ListItem>() 
    .FirstOrDefault(i => i.Text.Equals("Volvo", StringComparison.InvariantCultureIgnoreCase)); 
+0

gracias ..:) –

1

Esto funcionó para mí

foreach(ListItem li in dropdownlist.Items) 
    { 
     if (String.Compare(li.Text, myLabel.Text, true) == 0) 
      myCustomValidator.IsValid = false; // Match Found ! 
    } 
+0

No es eficiente si trabajas con muchos artículos. Entonces, una búsqueda será su mejor opción si necesita mejorar el rendimiento y el uso de la memoria. Pero para mejorar tu solución. Simplemente salga del bucle for una vez que se encuentre el elemento –

0

como Tim dijo LINQ sería su respuesta.
en C# intente lo siguiente:

var item = dropdownlist.Items.Cast<ListItem>().SingleOrDefault(li => 
               li.Text.ToUpper() == "VOLVO"); 
0

variantes adicionales, utilizando comparación marco CI. VB:

uiList.Items.Cast(Of ListItem) 
    .FirstOrDefault(Function(i) i.Text.Equals(comparand, StringComparison.InvariantCultureIgnoreCase)) 

C#:

uiList.Items.Cast<ListItem>() 
    .FirstOrDefault(i => i.Text.Equals(comparand, StringComparison.InvariantCultureIgnoreCase)); 

También podría usar CurrentCultureIgnoreCase función de sus necesidades. En general, estos son más seguros que los que se comparan con ToUpper/ToLower, ya que algunas culturas tienen reglas de envoltura inesperadas.

Cuestiones relacionadas