Usuario
Problema al capturar selección de items en ListBox C#

Pregunta
-
Hola a todos, cuento con un ListBox Multiselect:
<label for="lbxEmpleado">PERSONAL</label> <asp:ListBox ID="lbxEmpleado" runat="server" CssClass="form-control" SelectionMode="Multiple"></asp:ListBox>
en el aspx.cs:
foreach (ListItem item in lbxEmpleado.Items) { if (item.Selected) { objPerOrd = new PersonalPorOrdenServicio(); objPerOrd.perOrd_numeroOrdenServicio = Convert.ToInt64(arraySp[1]); objPerOrd.perOrd_fechaInicioOrdenServicio = Convert.ToDateTime(txtFechaInicio.Text); objPerOrd.perOrd_fechaFinOrdenServicio = null; objPerOrd.perOrd_IDTipoPersonal = 3; objPerOrd.perOrd_IDOrdenServicio = Convert.ToInt64(arraySp[0]); objClsPerOrd = new clsPersonalPorOrdenServicio(); objClsPerOrd.NuevoPersonalPorOrdenServicio(objPerOrd); } }
Cuando por ejemplo, selecciono 3 ítems, solo me captura la selección del primero. ¿A que se deberá esto? ¿Alguna alternativa?
Desearía de paso si me pueden proporcionar información para realizar un Dropdownlist Multiselect que es lo que desee al principio, pero no pude realizarlo y por ello implementé un ListBox (siendo mi preferencia Dropdown Multiselect)
Gracias por su atención! Saludos
Todas las respuestas
-
hola
donde asignas los datos del listbox?
si lo haces en el Page_Load recuerda que ese codigo debe estar dentro de un
if(!IsPostBack){ //aqu asignas datos listbox }
sino lo haces asi el evento load se ejecuta en el evento y se vuelve a recargar la lista, perdiendo la seleccion
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Hola Leandro! si si lo hago de esta manera:
protected void Page_Load(object sender, EventArgs e) { try { if (!IsPostBack) { txtAreaServicio.Text = Session["arServ_nombre"].ToString(); cargarDDLTipoReclamo(); cargarDDLBarrio(); cargarDDLPersonal(3); //ACA LLAMA AL MÉTODO PARA CARGAR EL LBX } } catch (Exception ex) { } }
private void cargarDDLPersonal(int IDTipoPersonal) { try { webService = new WebServiceDC(); string stLstResponsable = webService.cargarDDLPersonal(Convert.ToInt64(Session["per_IDAreaServicio"]), IDTipoPersonal); JavaScriptSerializer jsSer = new JavaScriptSerializer(); List<clsTipoPersonal.DDLPersonal> lstPersonal = jsSer.Deserialize<List<clsTipoPersonal.DDLPersonal>>(stLstResponsable); lbxEmpleado.DataTextField = "per_NombreCompleto"; lbxEmpleado.DataValueField = "tipPer_IDTipoPersonal"; lbxEmpleado.DataSource = lstPersonal; lbxEmpleado.DataBind(); } catch (Exception ex) { } }
- Editado AguFortini sábado, 27 de octubre de 2018 20:22