valores validacion sugerencias otra origen modificar listas lista hoja encontrar dinamicas desplegables desplegable desde dependientes datos crear con búsqueda autocompletar asociados c# asp.net drop-down-menu

c# - validacion - ¿La mejor manera de verificar si una lista desplegable contiene un valor?



modificar lista desplegable excel 2016 (9)

Cuando el usuario navega a una página nueva, el índice seleccionado de este ddl es determinado por una cookie, pero si el ddl no contiene el valor de esa cookie, me gustaría que se establezca el 0. ¿Qué método usaría para el ddl? Es un bucle de la mejor manera, o hay una declaración simplemente si puedo realizar?

Esto es lo que he intentado, pero no devuelve un bool.

if ( !ddlCustomerNumber.Items.FindByText( GetCustomerNumberCookie().ToString() ) ) ddlCustomerNumber.SelectedIndex = 0;


¿Qué tal esto?

ListItem match = ddlCustomerNumber.Items.FindByText( GetCustomerNumberCookie().ToString()); if (match == null) ddlCustomerNumber.SelectedIndex = 0; //else // match.Selected = true; // you''ll probably select that cookie value


// puedes usar el? operador en lugar de si

ddlCustomerNumber.SelectedValue = ddlType.Items.FindByValue(GetCustomerNumberCookie().ToString()) != null ? GetCustomerNumberCookie().ToString() : "0";


En C # esto funciona:

if (DDLAlmacen.Items.Count > 0) { if (DDLAlmacen.Items.FindByValue("AlmacenDefectoAndes").Value == "AlmacenDefectoAndes") { DDLAlmacen.SelectedValue = "AlmacenDefectoAndes"; } }

Actualizar:

Traducir el código anterior a Visual Basic no funciona. Lanza "System.NullReferenceException: referencia de objeto no establecida en una instancia de un objeto ..."

Asi que. para que esto funcione en Visual Basic, tuve que cambiar el código de esta manera:

If DDLAlmacen.Items.Count > 0 Then If DDLAlmacen.Items.Contains(New ListItem("AlmacenDefectoAndes")) Then DDLAlmacen.SelectedValue = "AlmacenDefectoAndes" End If End If


Eso devolverá un artículo. Simplemente cambie a:

if (ddlCustomerNumber.Items.FindByText( GetCustomerNumberCookie().ToString()) != null) ddlCustomerNumber.SelectedIndex = 0;


Hay dos métodos que vienen a la mente:

Puede usar Contiene así:

if (ddlCustomerNumber.Items.Contains(new ListItem(GetCustomerNumberCookie().ToString()))) { // ... code here }

o modificando su estrategia actual:

if (ddlCustomerNumber.Items.FindByText( GetCustomerNumberCookie().ToString()) != null) { // ... code here }

EDITAR: También hay un DropDownList.Items.FindByValue que funciona de la misma manera que FindByText, excepto que busca en función de los valores.


Podría intentar comprobar si este método devuelve un valor nulo:

if (ddlCustomerNumber.Items.FindByText(GetCustomerNumberCookie().ToString()) != null) ddlCustomerNumber.SelectedIndex = 0;


Si 0 es su valor predeterminado, puede simplemente usar una asignación simple:

ddlCustomerNumber.SelectedValue = GetCustomerNumberCookie().ToString();

Esto selecciona automáticamente el elemento de lista adecuado, si el DDL contiene el valor de la cookie. Si no lo contiene, esta llamada no cambiará la selección, por lo que permanece en la selección predeterminada. Si el último es igual que el valor 0, entonces es la solución perfecta para usted.

Utilizo este mecanismo bastante y lo encuentro muy útil.


Si la función devuelve Nothing, puedes probar esto a continuación

if (ddlCustomerNumber.Items.FindByText( GetCustomerNumberCookie().ToString()) != Nothing) { ... }


ListItem item = ddlComputedliat1.Items.FindByText("Amt D"); if (item == null) { ddlComputedliat1.Items.Insert(1, lblnewamountamt.Text); }