none
AYUDA CON EL JOVEN LEANDRO TUTINI! RRS feed

  • Pregunta

  • Principalmente le pido ayuda al joven Leandro porque sus respuestas me han sido muy útil, y es la primera vez que uso estos foros

    tengo este problema:

    mediante el el evento selectedIndexChanged de mi gridview hago esto:
    (Ejemplo)
    ddlCategoria.SelectedValue = gvlistado.SelectedRow.Cells(5).Text

    pero el text siempre me guarda un String y saldría un error porque el selectedvalue guarda un entero
    intenté hacer esto:
    (Otro ejemplo)

    If gvlistado.SelectedRow.Cells(15).Text = "Gelatinas" Then
                gvlistado.SelectedRow.Cells(12).Text = "1"
            Else
                gvlistado.SelectedRow.Cells(12).Text = "2"
            End If

    ddlCategoria.SelectedValue = gvlistado.SelectedRow.Cells(12).Text
    De esta forma me va genial! (Y) pero lo que pasa es que en la base de datos la tabla categoria tiene un mantenimiento y

    y sus datos varian a cada rato, puede tener mas de 1000 datos y no voy a hacer una validación para 1000 datos.
    por favor quizá me podrías ayudar con este problema D: estoy en el trabajo y es la 1era vez que me encuentro con este

    tipo de problemas

    gracias de antemano

    miércoles, 18 de julio de 2012 16:04

Respuestas

  • eso mismo! te explico! mira mi consulta sql

    cuando no ponia el select case when campo1 then ' '

    me salia perfecto el selectedindexchanged! pero en mi gridview mostraba solo el id

    y como te digo se vería un poco presentable. ahora que puse el select case when then

    ya no sale. Quiza aya otra consulta sql que me de alias a los campos de mi tabla y no afecta

    mi codigo vb? y tienes razon, nunca coincide porque el gvlistado.selectedrow.cells(5).text <--- siempre guarda 'Gelatinas'

    y el dllCategoria.selectedvalue <--- siempre guarda '-1'

    entonces mi programita se caería 

    parece que me encuentro entre la vida y la muerte 

    ayúdame por fa vor, te lo ruego! eres el mejor blogger que he visto hasta ahora y sabes un monton sobre el tema

    • Marcado como respuesta Josue P. Corzo miércoles, 18 de julio de 2012 20:19
    miércoles, 18 de julio de 2012 17:29

Todas las respuestas

  • pero el text siempre me guarda un String y saldría un error porque el selectedvalue guarda un entero

    no has evaluado convertir

    ddlCategoria.SelectedValue = Convert.ToInt32(gvlistado.SelectedRow.Cells(5).Text)

    pero recuerda que el valor de la celda debe coincidir con un valor delc ampo que asignas al ValueTextField

    pero lo que pasa es que en la base de datos la tabla categoria tiene un mantenimiento y y sus datos varian a cada rato, puede tener mas de 1000 datos y no voy a hacer una validación para 1000 datos

    para editar porque no recuperas la entidad por su id en lugar de tomar el valor de la celda del gridview

    [ASP.NET] GridView – Edición Empleados

    mas all que sea otro webform o no puedes tomar el id de la entidad y recuperarla


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 18 de julio de 2012 16:28
  • Lo siento! me olvidé decirte que cuando hago el convert me sale esto:
    La cadena de entrada no tiene el formato correcto.

    o cuando lo hago sin convert ni nada sale esto: 

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

    y te cuento que mi consulta sql es así ;)
    un poco larga pero lo resumiré!

    ALTER procedure [dbo].[usp_listarProductos]
    as
    select ID_PRODUCTO 'Id',CODPRODUCTO 'Código',PROD_DESC 'Descripción',
    UNIDAD_EMPAQUE 'Empaque', 
    case when p.ID_CATEGORIA = p.ID_CATEGORIA  then DESCATEGORIA end 'Categoría',

    from PRODUCTO p inner join CATEGORIA c on p.ID_CATEGORIA = c.ID_CATEGORIA

    hice el inner join porque queria ver su descripcion. La tabla producto solo tiene su identificador id! y yo

    quiero que en mi gridview me salga la descripcion, no el id porque se veria un poco presentable

    miércoles, 18 de julio de 2012 16:35
  • quiero que en mi gridview me salga la descripcion, no el id porque se veria un poco presentable

    eso seguro, pero debes asignar el

    DataValueField

    y

    DataTextField

    analzia el ejemplo del link

    para poder usar el SelectedValue

    ademas otra cosa, recuerda que el valor de la celda debe devolver el numero que quieres asignar no al descripcion

    porque sino usarias

    ddlCategoria.Text= gvlistado.SelectedRow.Cells(5).Text

    pero recomendaria como comente en el articulo del link que recuperes la entidad basado el id

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 18 de julio de 2012 16:41
  • Jeje si he asignado el datavaluefield y datatextfield ;) así es mi código:

    en capa DAO:

    Public Function cargarCategoria() As DataTable
            Dim da As New SqlDataAdapter("select * from CATEGORIA union select -1,'<<Seleccione>>'", cn.getCN)
            Dim tb As New DataTable
            da.Fill(tb)
            Return tb
        End Function

    y en mi web form en lo cargo así:

    ddlCategoria.DataSource = pt.cargarCategoria
            ddlCategoria.DataTextField = "DESCATEGORIA"
            ddlCategoria.DataValueField = "ID_CATEGORIA"
            ddlCategoria.DataBind()

    en el If Not Page.IsPostBack obviamente
    está raro, cuál crees que sería el error?

    miércoles, 18 de julio de 2012 16:45
  • está raro, cuál crees que sería el error?

    no veo ningun error, solo que debes asegurarte que el valor que asignas al SelectedValue debe corresponder con el campo

    ID_CATEGORIA

    sino coincide no lo seleccionara


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    miércoles, 18 de julio de 2012 17:15
  • eso mismo! te explico! mira mi consulta sql

    cuando no ponia el select case when campo1 then ' '

    me salia perfecto el selectedindexchanged! pero en mi gridview mostraba solo el id

    y como te digo se vería un poco presentable. ahora que puse el select case when then

    ya no sale. Quiza aya otra consulta sql que me de alias a los campos de mi tabla y no afecta

    mi codigo vb? y tienes razon, nunca coincide porque el gvlistado.selectedrow.cells(5).text <--- siempre guarda 'Gelatinas'

    y el dllCategoria.selectedvalue <--- siempre guarda '-1'

    entonces mi programita se caería 

    parece que me encuentro entre la vida y la muerte 

    ayúdame por fa vor, te lo ruego! eres el mejor blogger que he visto hasta ahora y sabes un monton sobre el tema

    • Marcado como respuesta Josue P. Corzo miércoles, 18 de julio de 2012 20:19
    miércoles, 18 de julio de 2012 17:29