Foros del Web » Programación para mayores de 30 ;) » .NET »

DropDownList en GridView

Estas en el tema de DropDownList en GridView en el foro de .NET en Foros del Web. Bueno mi problema es que en un GridView tengo una columna llamada 'Tipo' que al ser editada se convierte en un DropDownList y pueden escoger ...
  #1 (permalink)  
Antiguo 10/08/2011, 07:50
 
Fecha de Ingreso: julio-2011
Mensajes: 15
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta DropDownList en GridView

Bueno mi problema es que en un GridView tengo una columna llamada 'Tipo' que al ser editada se convierte en un DropDownList y pueden escoger entre 'Externo', 'Interno' y '', el problema es que cuando le doy en realizar cambios no los guarda, y ya cheque el SqlDataSource pero si esta bien, al principio me marcaba un error de que se esperaba un valor para @Tipo, pero ahora no me marca el error y me sigue sin guardar
  #2 (permalink)  
Antiguo 10/08/2011, 09:28
Avatar de othix  
Fecha de Ingreso: mayo-2011
Ubicación: Guatemala
Mensajes: 92
Antigüedad: 13 años
Puntos: 9
Respuesta: DropDownList en GridView

Pone parte del codigo, yo cuando he utilizado controles y en un gridview antes de guardar los datos los casteo CType
__________________
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas."
  #3 (permalink)  
Antiguo 10/08/2011, 09:37
 
Fecha de Ingreso: julio-2011
Mensajes: 15
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: DropDownList en GridView

Pues verás, el GridView lo lleno con un SqlDataSource hace una llamada a la consulta que hice en SQL Query Analyzer, al editar el SqlDataSource vuelve a hacer una llamada a otra consulta del SQL y el DropDownList lo precargue en su propiedad Items, y la consulta pues está así
Código SQL:
Ver original
  1. (@Cve_dir INT,
  2. @Nom_dir VARCHAR(100),
  3. @Alias VARCHAR(20),
  4. @Titular VARCHAR(100),
  5. @Tipo VARCHAR(15),
  6. @Vigente bit)
  7. AS
  8.     UPDATE SIIDireccion SET Nom_dir=@Nom_dir, Alias=@Alias, Titular=@Titular, Tipo=@Tipo, Vigente=@Vigente
  9. WHERE  Cve_dir=@Cve_dir
Así es como lo tengo para editar, así que no tengo ningún código en el formulario apsx que tenga que ver con editar el GridView
  #4 (permalink)  
Antiguo 11/08/2011, 09:31
 
Fecha de Ingreso: julio-2011
Mensajes: 15
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: DropDownList en GridView

Acabo de ver donde falla, el DropDownList esta en en un Template, asi que lo cambie por un Textbox, al ejecutarlo tampoco guarda los datos asi que quite el Template y si los guarda, asi que el error esta cuando el campo esta en Template.
Alguien me podria como guardar en una base de datos el valor del DropDownList estando en el Template, aunque pienso que no deberia ser diferente
  #5 (permalink)  
Antiguo 11/08/2011, 10:07
 
Fecha de Ingreso: agosto-2011
Ubicación: Buenos Aires
Mensajes: 78
Antigüedad: 12 años, 9 meses
Puntos: 10
Respuesta: DropDownList en GridView

Lo que pienso que pasa es que el DropDownList dentro del template no está bindeado, por eso no levanta el valor.
Se me ocurre que manejes el evento RowUpdating para obtener ese valor desde el objeto de la grilla y asignarlo a la colección de NewValues, todo manualmente por supuesto.

Sí no es muy extenso podrías subir código del cliente también
__________________
www.orientadoanet.com
  #6 (permalink)  
Antiguo 11/08/2011, 13:41
 
Fecha de Ingreso: julio-2011
Mensajes: 15
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: DropDownList en GridView

No se si te refieras a este, ya que no se mucho de esto
Así es como carga, yo solo apoyo en el proyecto, así que prefiero no meterle mucha mano de obra a lo brusco
Código vb:
Ver original
  1. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  2.         Dim i As Integer
  3.         Dim Accesos As DataSet
  4.         If Session("sec_sesion") <> 1 Then
  5.             Dim mensaje2 As String = "<script language='javascript'> alert('Debe iniciar sesion'); location.href = 'Inicio.aspx'; </script>"
  6.             ClientScript.RegisterStartupScript(Page.GetType(), "msj", mensaje2)
  7.         Else
  8.             Accesos = Permisos.Permiso("Administracion.aspx", Session("sec_grupo"))
  9.             If Accesos.Tables("acceso").Rows.Count = 0 Then
  10.                 Dim mensaje As String = "<script language='javascript'> alert('Acceso denegado a esta página'); location.href = 'Inicio.aspx'; </script>"
  11.                 ClientScript.RegisterStartupScript(Page.GetType(), "msj", mensaje)
  12.             Else
  13.                 For i = 0 To Accesos.Tables("acceso").Rows.Count - 1
  14.                     If (Accesos.Tables("acceso").Rows(i).Item(0).ToString <> 3) Then
  15.                         Me.TabContainer1.ActiveTabIndex = 0
  16.                         Me.TabContainer1.Tabs(0).Visible = False
  17.                         Me.TabContainer1.Tabs(1).Visible = False
  18.                         Me.TabContainer1.Tabs(2).Visible = False
  19.                         Me.TabContainer1.Tabs(3).Visible = True
  20.                         If Accesos.Tables("acceso").Rows(i).Item(1).ToString <> 8 Then
  21.                             enable_serv()
  22.                         End If
  23.                         Me.TabContainer1.Tabs(4).Visible = False
  24.                         Me.TabContainer1.Tabs(5).Visible = False
  25.                         Me.TabContainer1.Tabs(6).Visible = False
  26.                         If Session("sec_iddepto") = 34 Then
  27.                             Me.TabContainer1.Tabs(7).Visible = True
  28.                         Else
  29.                             Me.TabContainer1.Tabs(7).Visible = False
  30.                         End If
  31.                         Me.TabContainer1.Tabs(8).Visible = False
  32.                     End If
  33.                 Next
  34.             End If
  35.         End If
  36.     End Sub

Y para registrar los datos a la Base es este
Código vb:
Ver original
  1. Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
  2.         Try
  3.             Catalogos.RegDir(Me.txtnomb.Text, Me.txtalias.Text, Me.DDLTit.Text)
  4.             ScriptManager.RegisterStartupScript(Me.UpdatePanel1, Me.UpdatePanel1.GetType(), "Catálogos", "alert('Registro Agregado');", True)
  5.             'Conexion.closeCon()
  6.            Me.txtnomb.Text = ""
  7.             Me.txtalias.Text = ""
  8.             Me.DDLTit.Text = ""
  9.         Catch ex As Exception
  10.             ScriptManager.RegisterStartupScript(Me.UpdatePanel1, Me.UpdatePanel1.GetType(), "Catálogos", "alert('" & ex.Message.ToString & "');", True)
  11.         End Try
  12.     End Sub
Código vb:
Ver original
  1. Public Shared Function RegDir(ByVal Nom_dir As String, ByVal Alia As String, ByVal tipo As String) As String
  2.         Dim conection As SqlConnection = Conexion.GetConnection
  3.         Dim sqlquery As String = "exec pc_NewDir '" & Nom_dir & "','" & Alia & "','" & tipo & "'"
  4.         Dim comando As SqlCommand = New SqlCommand(sqlquery, conection)
  5.         comando.ExecuteNonQuery()
  6.         conection.Close()
  7.         Return 0
  8.     End Function
  #7 (permalink)  
Antiguo 12/08/2011, 09:01
 
Fecha de Ingreso: agosto-2011
Ubicación: Buenos Aires
Mensajes: 78
Antigüedad: 12 años, 9 meses
Puntos: 10
Respuesta: DropDownList en GridView

Agregá un manejador al evento RowUpdating de la grilla, dentro del mismo podés buscar el dropdownlist y obtener el valor seleccionado
__________________
www.orientadoanet.com
  #8 (permalink)  
Antiguo 15/08/2011, 10:14
 
Fecha de Ingreso: julio-2011
Mensajes: 15
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: DropDownList en GridView

Ya intente lo que me dijistepero ahora no se como hacerle ya que cuando intento llamar el valor del dropdownlist del griview me dice que no esta declarado , y lo que no se es que cuando ya obtenga el valor como hago para que lo edite o ya lo guarda por default
  #9 (permalink)  
Antiguo 16/08/2011, 11:23
 
Fecha de Ingreso: agosto-2011
Ubicación: Buenos Aires
Mensajes: 78
Antigüedad: 12 años, 9 meses
Puntos: 10
Respuesta: DropDownList en GridView

El objeto e del manejador tiene una propiedad NewValues, simplemente la podés añadir ahi
__________________
www.orientadoanet.com

Etiquetas: dropdownlist, gridview, template, visual, formulario
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 22:42.