Foros del Web » Programando para Internet » ASPX (.net) »

Duda Cargar DropDown desde un GridView como Sql Server

Estas en el tema de Duda Cargar DropDown desde un GridView como Sql Server en el foro de ASPX (.net) en Foros del Web. Que Tal me gustaria saber como recuperar el valor de un campo de sql server en un dropdownlist dentro de un gridview. Este Drop esta ...
  #1 (permalink)  
Antiguo 01/06/2010, 09:30
 
Fecha de Ingreso: marzo-2008
Mensajes: 286
Antigüedad: 16 años, 8 meses
Puntos: 1
Duda Cargar DropDown desde un GridView como Sql Server

Que Tal me gustaria saber como recuperar el valor de un campo de sql server en un dropdownlist dentro de un gridview.

Este Drop esta dentro de un itemtemplated ... y cargo la grilla desde el aspx.vb con un datasource que se llama desde una clase.

Aca les dejo el codigo.


Aca es donde cargo el gridview y tambien tengo que cargar los valroes que puede tener el dropdown del problema

Cita:
grv_RelaUniTrans.DataSource = ClaseUniTransporte.CargaDatRelaUniTrans(Txt_CabCod Empresa.Text, Txt_CodCiaTrans.Text)
grv_RelaUniTrans.DataBind()
For i = 0 To grv_RelaUniTrans.Rows.Count - 1
Dim row As GridViewRow = grv_RelaUniTrans.Rows(i)
DirectCast(row.FindControl("Ddl_Unidad"), DropDownList).DataSource = ClaseUniMedida.CargaComboUniMedida(Txt_CabCodEmpre sa.Text)
DirectCast(row.FindControl("Ddl_Unidad"), DropDownList).DataValueField = "cod_unidad"
DirectCast(row.FindControl("Ddl_Unidad"), DropDownList).DataValueField = "des_unidad"
DirectCast(row.FindControl("Ddl_Unidad"), DropDownList).DataBind()
Next

Y recupero los valores aca como son itemtemplated de la siguiente forma.

Cita:

<asp:TemplateField><ItemTemplate><asp:TextBox ID="Txt_Modelo" text = '<%# eval("des_modelo") %>' runat="server"> </asp:TextBox></ItemTemplate></asp:TemplateField>

<asp:TemplateField><ItemTemplate><asp:TextBox ID="Txt_Capacidad" runat="server" text = '<%# eval("num_capacidad") %>'> </asp:TextBox></ItemTemplate></asp:TemplateField>

<asp:TemplateField><ItemTemplate><asp:DropDownLi st ID="Ddl_Unidad" runat="server" SelectedValue = '<%# eval("cod_unidad") %>'></asp:DropDownList></ItemTemplate></asp:TemplateField>
Y el problema es que parece que va primero a buscar el valor en el
SelectedValue = '<%# eval("cod_unidad") %>' antes de ir a cargar el dropdown y por eso me da un error que no encuentra el cod_unidad.

Alguna sugerencia?
  #2 (permalink)  
Antiguo 01/06/2010, 11:11
 
Fecha de Ingreso: marzo-2008
Mensajes: 286
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Duda Cargar DropDown desde un GridView como Sql Server

alguna sugerencia???
  #3 (permalink)  
Antiguo 01/06/2010, 15:47
 
Fecha de Ingreso: marzo-2008
Mensajes: 286
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Duda Cargar DropDown desde un GridView como Sql Server

Sugerencia?
  #4 (permalink)  
Antiguo 01/06/2010, 16:19
 
Fecha de Ingreso: junio-2010
Mensajes: 49
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Duda Cargar DropDown desde un GridView como Sql Server

Primero de todo, supongo que estableces como datasource del control un dataset lleno, pero te falta asignarle un datamember, que seria el nombre de la tabla que quieres usar dentro del dataset.

Segunda cosa que veo es que asignas dos veces el valuefield.... y solo puede contener una valriable.... con lo que al igualar a "des_unidad" eliminas como valor "cod_unidad"
Por esa razon cuando intentas seleccionar el item con selectvalue cuando el value es igual a "cod_unidad" no lo encuentra ya que ahora el valuefield es "des_unidad"

Espero que te sirva.
  #5 (permalink)  
Antiguo 01/06/2010, 16:32
 
Fecha de Ingreso: marzo-2008
Mensajes: 286
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Duda Cargar DropDown desde un GridView como Sql Server

el problema es que cargo que primero se carga el gridview y se supone que despues cargaria denuevo los ddl pero sucede este error

'Ddl_Unidad' tiene un SelectedValue que no es válido porque no existe en la lista de elementos. Nombre del parámetro: value

porque hace un selectedvalue pero no se ha cargado el combo, ese es el problema
  #6 (permalink)  
Antiguo 01/06/2010, 16:46
 
Fecha de Ingreso: junio-2010
Mensajes: 49
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Duda Cargar DropDown desde un GridView como Sql Server

Sin ver el dataset que cargas en ese metodo no te puedo decir muchas mas, pero observa que en principio asignas un datasource (el dataset) pero no le asignas un datamember(la tabla dentro del dataset de la que recoger los datos) y luego, le asignas al value uvalor a, e inmediatamente le asignas un valor b.

Cita:
Iniciado por roger1187 Ver Mensaje
DirectCast(row.FindControl("Ddl_Unidad"), DropDownList).DataValueField = "cod_unidad"
DirectCast(row.FindControl("Ddl_Unidad"), DropDownList).DataValueField = "des_unidad"
no encuentra el value correspondiente a "cod_unidad" porque una linea despues de código la has reemplazado con el valor de "des_unidad". Sin ver bien el código entero.... otra cosa.... estar cargando varias rows con un dropdown con la misma ID?? Si es asi claro que no te lo va a coger puesto que la id es única, debes añadirle una numeracion a ese id.

Perdona si no te puedo responder más preo es que no entiendo bien que es lo que quieres hacer...
  #7 (permalink)  
Antiguo 01/06/2010, 16:49
 
Fecha de Ingreso: marzo-2008
Mensajes: 286
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Duda Cargar DropDown desde un GridView como Sql Server

este es el arreglado

Cita:

grv_RelaUniTrans.DataSource = ClaseUniTransporte.CargaDatRelaUniTrans(Txt_CabCod Empresa.Text, Txt_CodCiaTrans.Text)
grv_RelaUniTrans.DataBind()
For i = 0 To grv_RelaUniTrans.Rows.Count - 1
Dim row As GridViewRow = grv_RelaUniTrans.Rows(i)
DirectCast(row.FindControl("Ddl_Unidad"), DropDownList).DataSource = ClaseUniMedida.CargaComboUniMedida(Txt_CabCodEmpre sa.Text)
DirectCast(row.FindControl("Ddl_Unidad"), DropDownList).DataValueField = "cod_unidad"
DirectCast(row.FindControl("Ddl_Unidad"), DropDownList).DataTextField = "des_unidad"
DirectCast(row.FindControl("Ddl_Unidad"), DropDownList).DataBind()
y este es la clase que se llama

Cita:
Public Function CargaComboUniMedida(ByVal CodEmpresa As String) As DataSet
Dim cnx As MySqlConnection
cnx = New MySqlConnection(ConfigurationManager.ConnectionStr ings("ConnectionSigcol1").ConnectionString)
Dim cadena As String
cadena = "call INV_sp_unidad_medida_selectcombo_sb('" & CodEmpresa & "');"
Dim cmmCurso As New MySqlCommand()
cmmCurso.CommandType = Data.CommandType.Text
cmmCurso.CommandText = cadena
cmmCurso.Connection = cnx
Dim dsCurso As New System.Data.DataSet()
Dim daCurso As New MySqlDataAdapter(cmmCurso)
daCurso.Fill(dsCurso)
CargaComboUniMedida = dsCurso
End Function
  #8 (permalink)  
Antiguo 01/06/2010, 16:55
 
Fecha de Ingreso: junio-2010
Mensajes: 49
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Duda Cargar DropDown desde un GridView como Sql Server

Cita:
Iniciado por roger1187 Ver Mensaje
daCurso.Fill(dsCurso, "Nombredetabla")
Return dsCurso
Cita:
Iniciado por roger1187 Ver Mensaje
Dim ds as new System.Data.Dataset = ClaseUniMedida.CargaComboUniMedida(Txt_CabCodEmpre sa.Text)
DirectCast(row.FindControl("Ddl_Unidad"), DropDownList).DataSource = ds
DirectCast(row.FindControl("Ddl_Unidad"), DropDownList).DataMember = "nombredelatabla"
Prueba así y asegurate que todos los dropdown tengan id´s distintas.
  #9 (permalink)  
Antiguo 01/06/2010, 16:57
 
Fecha de Ingreso: marzo-2008
Mensajes: 286
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Duda Cargar DropDown desde un GridView como Sql Server

ya encontre una forma alterna de solucionarlo

Cita:

Dim Placa As String = DirectCast(row.FindControl("Tx_Placa"), TextBox).Text
ClaseUniTransporte.CargaCodUnidad(Placa)
DirectCast(row.FindControl("Ddl_Unidad"), DropDownList).SelectedValue = ClaseUniTransporte.cod_unidad
gracias de todas formas

Etiquetas: dropdown, gridview, server, sql, aspx
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:15.