none
cambiar datos de un gridview despues de llenarlo RRS feed

  • Pregunta

  • gracias por tomarse la molestia de leer la pregunta

    veran, tengo un gridview el cual me muestra los datos de un reporte, estos estatus fueron definidos por el usuario, pero yo no uso el texto del status si no que uso dos letras con los que lo identifico por decir Reviwed = RV o No Answer = NA, en el grid me despliega este NA,RV, entre otros varios estados que tengo, pero quiero que muestre el texto, pense en cambiar un poco la base de datos y crear una tabla "Status" y ponerle a los status las claves que comento y ya solo enlazarlos pero, ya tengo varios procedures echos con este esquema, lo que quiereo evitar es cambiar los sp entonses cree un procedimiento en donde mando el grid

     Sub cambiarstatus(ByVal dgrep As GridView, ByVal celda As Integer)
        For Each row As GridViewRow In dgrep.Rows
          If row.Cells(celda).Text = "NC" Then
            row.Cells(celda).Text = "No Answer"
          ElseIf row.Cells(celda).Text = "RV" Then
            row.Cells(celda).Text = "Reviwed"
          End If
        Next
    
    pero quiero saber si no hay forma mas corta de hacer esto
    lunes, 4 de abril de 2011 14:33

Respuestas

  • Has pensado la posibilidad de hacerlo directamente en la consulta SQL que utilizas para rellenar el Grid?

    En TSQL tienes la palabra reservada CASE que te permite hacer lo que deseas.

    select campo1, case campo2 when "NC" then "No Answer" case "RV" then "Reviewed" else "No data" end from tabla


    Javier Torrecilla
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    • Propuesto como respuesta lopezatienza lunes, 4 de abril de 2011 14:47
    • Marcado como respuesta Arthuro Zerda lunes, 4 de abril de 2011 14:49
    lunes, 4 de abril de 2011 14:36
    Moderador

Todas las respuestas

  • Has pensado la posibilidad de hacerlo directamente en la consulta SQL que utilizas para rellenar el Grid?

    En TSQL tienes la palabra reservada CASE que te permite hacer lo que deseas.

    select campo1, case campo2 when "NC" then "No Answer" case "RV" then "Reviewed" else "No data" end from tabla


    Javier Torrecilla
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    • Propuesto como respuesta lopezatienza lunes, 4 de abril de 2011 14:47
    • Marcado como respuesta Arthuro Zerda lunes, 4 de abril de 2011 14:49
    lunes, 4 de abril de 2011 14:36
    Moderador
  • gracias por responder jtorrecilla, te comento, tu solucion es excelente, pero lo que quiere evitarme es hacer el cambio en varios stored procedure pero si no encuentro otra solucion que me permita hacer esto creo que lo hare de tu forma

    saludos y gracias

    lunes, 4 de abril de 2011 14:53
  • Hombre la mejor opción sería que modificases la BD y creases la Tabla de Status... porque ahora mismo tienes 2 pero y si tuvieras mas?

    El problema es que tendrás que modificar todos los procedimientos en el que uses dicha consulta.

    Solución Mágica por desgracia no hay :(


    Javier Torrecilla
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    lunes, 4 de abril de 2011 14:59
    Moderador
  • sip, me rindo, enrealidad son mas, es que la aplicacion no es mia, entonses tendre que revisar cuales son los procedure y cambiarlos, ya cree la tabla =)

     

    saludos

    lunes, 4 de abril de 2011 15:26