elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Error de Compilacion (No me toma SelectedItem de DropDownList)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error de Compilacion (No me toma SelectedItem de DropDownList)  (Leído 4,801 veces)
Guillito

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Error de Compilacion (No me toma SelectedItem de DropDownList)
« en: 3 Marzo 2015, 04:31 am »

Hola, como les va..............cuando compilo para probar como funciona el código para llenar una tabla, cuando arribo a esta parte del Codigo, me da el siguiente Error:


Código:
Compiler Error Message: CS0029: Cannot implicitly convert type 'System.Web.UI.WebControls.ListItem' to 'System.Web.UI.WebControls.DropDownList'

Source Error:
 
Código:
Line 140:            // Se obtiene la fila seleccionada del DropDownList
Line 141:
Line 142:  DropDownList drop = DropDownNombre.SelectedItem;(Aquí el error)
Line 143:
Line 144:            // Obtengo el id de la entidad que se esta editando



Aquí el código cuestionado:

 
Código


Código
  1.  
  2. protected void DropDownNombre_SelectedIndexChanged(object sender, EventArgs e)
  3.  
  4.       {
  5.  
  6. // Se obtiene la fila seleccionada del DropDownList
  7.  
  8.           DropDownList drop = DropDownNombre.SelectedItem;
  9.  
  10. // Obtengo el id de la entidad que se esta editando
  11.  
  12. // en este caso de la entidad Curso
  13.  
  14.  
  15.  
  16. ViewState["idNombre"] = Convert.ToInt32(drop.SelectedItem);
  17.  
  18. }
  19.  
  20.  


este es el problema, la intención es tomar el Id de la Tabla del Ítem seleccionado..................

si alguien sabe cual es el problema, o el código adecuado, o como se soluciona, les agradecería su aporte.......

Sin mas que agregar, espero vuestra devolución, saludos....


« Última modificación: 3 Marzo 2015, 06:21 am por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Error de Compilacion (No me toma SelectedItem de DropDownList)
« Respuesta #1 en: 3 Marzo 2015, 06:11 am »

El error es self-explanatory, se explica por si mismo, no puedes convertir un ListItem (es decir, el Item seleccionado de un DropDownList) a un Control de tipo DropDownList, no tiene sentido.

No manejo ASP.Net, pero el problema es sencillo de entender y corregir, prueba así:
Código
  1. ListItem currentItem = ((DropDownList)sender).SelectedItem;
  2.  
  3. ViewState["idNombre"] = Convert.ToInt32(currentItem);

PD: La próxima vez trata de publicar bien el código... la mitad de los keywords estaban pegados los unos a los otros y no se entendia.

Saludos


« Última modificación: 3 Marzo 2015, 06:23 am por Eleкtro » En línea

Guillito

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Re: Error de Compilacion (No me toma SelectedItem de DropDownList)
« Respuesta #2 en: 4 Marzo 2015, 04:19 am »

Hola Elektro, siguiendo tu sugerencia, cuando compilo y elijo un Ítem del DropDownList, se ejecuta esa acción, y me da el siguiente error:

Unable to cast object of type 'System.Web.UI.WebControls.ListItem' to type 'System.IConvertible'.

Aquí, en:

ViewState["idNombre"] = Convert.ToInt32(currentItem);

en (currentItem), el valor del mismo es (con punto de interrupcion) el Nombre propiamente dicho (o sea, la palabra del Nombre) y no su Id en la Tabla de donde es llamado, que es lo que quiero obtener para que me cargue en el ViewState (el Id de la Tabla de ese Ítem seleccionado).......

Asi mismo, cuando selecciono el Ítem del DropDownList, se dispara la acción y me da el error, pero no se queda estatico sin dispararse, cosa que pueda elegir el Ítem del DropDownList del Apellido, que esta al lado.......

Si sabes algo, te agradezco...........Perdon por haber posteado algo mal con el código la primera vez, soy nuevo posteando....saludos y gracias....... ;-) :silbar:
« Última modificación: 4 Marzo 2015, 04:22 am por Guillito » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Error de Compilacion (No me toma SelectedItem de DropDownList)
« Respuesta #3 en: 4 Marzo 2015, 09:59 am »

Unable to cast object of type 'System.Web.UI.WebControls.ListItem' to type 'System.IConvertible'.

Aquí, en:

ViewState["idNombre"] = Convert.ToInt32(currentItem);

en (currentItem), el valor del mismo es (con punto de interrupcion) el Nombre propiamente dicho (o sea, la palabra del Nombre) y no su Id en la Tabla de donde es llamado, que es lo que quiero obtener para que me cargue en el ViewState (el Id de la Tabla de ese Ítem seleccionado).......

Creo que entendí mal lo que dijiste, pensé que el valor del item (currentItem) contendría un dígito, y no una cadena con "un nombre" (obviamente por eso no funciona la conversión a Integer, por que no es un número), pero tú lo que quieres obtener es el índice de ese item, no el contenido del item, bien, me queda claro.

Cómo ya te dije, no manejo ASP.Net, pero los controles de Framework suelen tener métodos/propiedades para facilitar tareas de indexación cómo esa y no es dificil averiguar el cómo,
lee la documentación de la propiedad 'SelectedIndex', que devuelve el índice del item seleccionado:
https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.dropdownlist.selectedindex%28v=vs.110%29.aspx

Por ende, esto debería funcionarte:

Código
  1. // ListItem currentItem = ((DropDownList)sender).SelectedItem;
  2. ListItem currentIndex = ((DropDownList)sender).SelectedIndex;
  3.  
  4. ViewState["idNombre"] = currentIndex;

Saludos
« Última modificación: 4 Marzo 2015, 10:32 am por Eleкtro » En línea

Guillito

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Re: Error de Compilacion (No me toma SelectedItem de DropDownList)
« Respuesta #4 en: 5 Marzo 2015, 02:23 am »

Hola Elektro:

Ahora me da el sig. Error:

Compiler Error Message: CS0029: Cannot implicitly convert type 'int' to 'System.Web.UI.WebControls.ListItem'


Código
  1.  
  2. ListItem currentIndex = ((DropDownList)sender).SelectedIndex;
  3.  
  4. ViewState["idNombre"] = currentIndex;
  5.  
  6.  
      (En la primera Línea)...............


De cualquier forma, Elektro, lo que quiero obtener de los DropsDown son los Ids. de la Tabla, mas no el Indice de los Ítems de los DropDowns......


Desde ya te estoy agradeciendo muchísimo, y me estoy fijando en el enlace que me mandaste, a ver si encuentro algo.....

Un abrazo grande, seguimos en contacto....




En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Error de Compilacion (No me toma SelectedItem de DropDownList)
« Respuesta #5 en: 5 Marzo 2015, 07:18 am »

Ahora me da el sig. Error:

Compiler Error Message: CS0029: Cannot implicitly convert type 'int' to 'System.Web.UI.WebControls.ListItem'

Código:
ListItem currentIndex = ((DropDownList)sender).SelectedIndex;

tuve un descuido muy tonto, asigné el type ListItem y no Int, pero eso deberías haber podido darte cuenta por ti mismo...

Código
  1. int currentIndex = ((DropDownList)sender).SelectedIndex;

saludos
En línea

Guillito

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Re: Error de Compilacion (No me toma SelectedItem de DropDownList)
« Respuesta #6 en: 7 Marzo 2015, 00:16 am »

 ;-)  Hola, Elektro:

te pregunto lo siguiente:

Para que funcione el código anterior que me enviaste,

debo llenar los DropDownList de la siguiente manera?(Es decir, con el Id de la Tabla, o sea Id_Alumno??):

Código
  1. DropDownNombre.DataSource = b.fillListView("Select Id_Alumno, Nombre From Alumno Order By Nombre Asc");
  2. DropDownNombre.DataBind();
  3.  

dado que con lo que me enviaste funcionaria, pero me da otro tipo de error, por ejemplo:

"No se puede agregar o cambiar el registro porque se necesita un registro relacionado en la tabla 'Alumno'."

Y este seria todo el código con tus sugerencias:

Código
  1. protected void ButtonTodas_Click(object sender, EventArgs e)
  2.        {
  3.            string a = ViewState["idNombre"].ToString();
  4.            string b = ViewState["idApellido"].ToString();
  5.            a = b;
  6.            ViewState["idAlumno"] = ViewState["idNombre"];
  7.  
  8.            if (a != b)
  9.            {
  10.                ViewState["idAlumno"] = null;
  11.            }
  12.            else
  13.            {
  14.                foreach
  15.                (GridViewRow dgi in GridInscMaterias.Rows)
  16.                {
  17.  
  18.                    CheckBox myCheckBox = dgi.Cells[0].Controls[1] as CheckBox;
  19.  
  20.                    if (myCheckBox != null)
  21.                    {
  22.  
  23.                        if (myCheckBox.Checked == true)
  24.                        {
  25.  
  26.                            ViewState["idMateria"] = GridInscMaterias.DataKeys[dgi.RowIndex][0].ToString();
  27.                            {
  28.                                string cadenaConexion = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
  29.                                OleDbConnection cnn = new OleDbConnection(cadenaConexion);
  30.                                cnn.Open();
  31.                                string SQL = string.Empty;
  32.                                SQL = ("SELECT id_cursoMateria From CursosMaterias cm Where cm.id_Curso = @idCurso AND cm.id_Materia = @idMateria");
  33.  
  34.                                ViewState["idCursoMateria"] = SQL;
  35.  
  36.                                string sql = string.Empty;
  37.                                sql = @"INSERT INTO AlumMatCursos (Id_Alumno, id_cursoMateria)
  38.                                VALUES (@idAlumno, @idcurMat)";
  39.                                OleDbCommand cmd = new OleDbCommand(sql, cnn);
  40.                                cmd.Parameters.AddWithValue("@idCurso", (ViewState["idCurso"]));
  41.                                cmd.Parameters.AddWithValue("@idMateria", (ViewState["idMateria"]));
  42.                                cmd.Parameters.AddWithValue("@idAlumno", (ViewState["idAlumno"]));
  43.                                cmd.Parameters.AddWithValue("@idcurMat", (ViewState["idCursoMateria"]));
  44.                                cmd.ExecuteNonQuery();
  45.                                cnn.Close();
  46.                                lblMensaje.Text = "Se registraron correctamente en BD!";
  47. }
  48.                        }
  49.                    }
  50.                }
  51.            }
  52.        }        
  53.  
  54.        protected void DropDownNombre_SelectedIndexChanged(object sender,    EventArgs e)
  55.        {
  56.            // Se obtiene la fila seleccionada del DropDownList
  57.            int currentIndex = ((DropDownList)sender).SelectedIndex;
  58.  
  59.            ViewState["idNombre"] = currentIndex;
  60.  
  61.            //ViewState["idNombre"] = Convert.ToInt32(DropDownNombre.SelectedValue);
  62.  
  63.        }
  64.        protected void DropDownApellido_SelectedIndexChanged(object sender, EventArgs e)
  65.        {
  66.            // Se obtiene la fila seleccionada del DropDownList
  67.            int currentIndex = ((DropDownList)sender).SelectedIndex;
  68.  
  69.            ViewState["idApellido"] = currentIndex;
  70.  
  71.        }
  72.    }
  73. }
  74.  

Sera que me esta tomando el índice del Ítem???....(y no de la tabla??).....



Desde ya te estoy agradeciendo, disculpa las molestias, nos estamos viendo....
« Última modificación: 7 Marzo 2015, 02:14 am por Guillito » En línea

Guillito

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Re: Error de Compilacion (No me toma SelectedItem de DropDownList)
« Respuesta #7 en: 10 Marzo 2015, 04:15 am »

Gracias Elektro, disculpa las molestias....
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error De Compilacion :'( « 1 2 »
Programación Visual Basic
Petro_Boca 13 5,800 Último mensaje 2 Agosto 2010, 21:45 pm
por BlackZeroX
Error de compilacion
Programación Visual Basic
Mr.Blue 4 4,864 Último mensaje 22 Agosto 2010, 01:17 am
por Mr.Blue
error de compilacion
Programación C/C++
mapers 2 2,721 Último mensaje 8 Septiembre 2010, 13:27 pm
por JuszR
John the ripper Error de compilacion -- make: *** [generic.h] Error 1 --
GNU/Linux
hbenzin 2 3,885 Último mensaje 20 Agosto 2011, 23:42 pm
por hbenzin
Error de Compilacion (No me toma SelectedItem de DropDownList)
Programación C/C++
Guillito 1 1,494 Último mensaje 2 Marzo 2015, 04:38 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines