c# - Asp.NET DropDownList SelectedItem.Value no cambia
data-binding drop-down-menu (6)
Entonces, esta respuesta es la solución "obvia" a la causa más común. Sin embargo, hay otro problema más que puede causar esto. Los valores de mi lista provienen de una base de datos y los valores tienen linefeed y carriage return: "/ r / n". Estos valores parecen un espacio inocente, ¡pero en realidad no lo son! Mi solución fue eliminar estos valores escondidos de Char. Espero eso ayude.
margen:
<div style="float:left;margin-top:15px;width:80px">
<asp:DropDownList ID="MyList" runat="server" Width="100px"></asp:DropDownList>
</div>
código:
// clear vehicles list
MyList.Items.Clear();
// add ''all'' option
MyList.Items.Add(new ListItem("ALL", "0"));
// add assets
foreach (CustomClass item in items)
MyList.Items.Add(new ListItem(item.Name, item.ID.ToString()));
No se activa evento para SelectedIndexChanged ya que no es necesario.
Cuando hago clic en el botón para devolución de datos, el valor del elemento seleccionado sigue siendo el valor del primer elemento en DropDownList. ¿Qué me estoy perdiendo?
NOTA Deje de responder y editar publicaciones. Podemos dejarlo tal como está, ya que ya se ha respondido.
Es probable que el código se esté ejecutando también después de la devolución de datos, borrando la casilla, perdiendo así la selección y todo.
Si es así, intente empaquetar el código en algo como if( !Page.IsPostBack ) { ... }
.
Hola, creo que estás completando tu menú desplegable en la carga de la página. Solo hazlo de la siguiente manera:
if(!Page.IsPostBack)
{
//Populate dropdown...
}
Funcionará bien
Sí, falta agregar la lista desplegable Autopostback = true ..
Intente seguir en su página .aspx
Si está Page_Load
datos en Page_Load
, básicamente también está reiniciando el SelectedItem.
Debería envolver el código de enlace que existe en Page_Load
dentro de un bloque if(!IsPostBack)
.
if(!Page.IsPostBack)
{
// Your binding code here ...
}
hey para el primer índice para agregar todo no requerido para agregar. necesitas insertar un número de índice particular
MyList.Items.Insert(0, "ALL");