none
como saber el valor de un checkbox RRS feed

  • Pregunta

  • hola,

    lo primero

    tengo un gridview que recibe un campo de tipo bit proveniente de una base de datos sql server sin embargo no encuentro la forma de obtener su propiedad checked  ps el checkbox no toma id que me permita manejarlo desde codebehind  ..
    martes, 2 de marzo de 2010 20:22

Respuestas

Todas las respuestas

  • hola

    si el problema es dirante la carga del check en la grilla, recuerda que tienes el evento RowDataBound

    GridView.RowDataBound (Evento)

    este evento se genera por cada row en la grilla al momento de bidear
    alli podrias poner la logica tomando el bit de tus datos y asigando el check o no segun corresponda

    por ahi deberas suar como comentan los link del Pablo el FindControl() para poder recuperar el control de la row
    ya que como es una grilla y los controles se generan dinamicos no tendras acceso directo

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 2 de marzo de 2010 21:01
  • hola pablo gracias por la respuesta sin embargo he revizado los enlaces y ps como dice son parecidos . .pues lo que sucede es q para mi caso lo que quiero es obtener la propiedad checked de Checkbox que se genera automaticamente en el gridview al vincularlo a una bd que tiene un campo bit .

    weno ps despues de buscar en internet y encontrar sugerencias similares a los enlaces que enviaste . .me he puesto a cacharrear un poco . . y ps creo haberlo solucionado . .de la siguiente forma . .espero sus comentarios . .


    bien al cargar la pagina vinculo un metodo de la siguiente forma verificaHerramienta();


    a diferencia del findcontrol("idControl"); el cual me permite el acceso a un determinado control en la fila a traves del id, en mi caso el control tiene un id que se genera automaticamente cuando se trata de un campo bit y ps al ser de un <asp:CheckBoxField /> no puedo acceder a un id

    lo que va en el metodo

    protected void verificaHerramienta(){
    
    
    foreach(GridviewRow fila in Migrilla.Rows){
    
    
    CheckBox ch=(CheckBox)fila.Cells[5].Controls[0];
    //5 es la columna que contiene el campo bit que automaticamente se convierte en un checkbox, luego a traves de la propiedad Controls especifico el index del control que posee la fila para mi caso 0 porque ps no hay mas, y logicamente hago la conversion a checkbox
    
    if(ch.checked){
    
    //aca ps ya puedo obtener las propiedades del CheckBox
    
    contTiene+=1;
    
    }
    
    
    
    }
    
    lblNumTiene.Text=contTiene.toString();
    
    
    
    
    }
    miércoles, 3 de marzo de 2010 13:02
  • hola

    asi es, puedes luego de bindear recorrer cada fila del la grilla, como has realziado en tu ejemplo

    o como decia el evento RowDataBound se lanza por cada fila, es como hacer el foreach pero al momento de bindear


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 3 de marzo de 2010 13:06
  • hola Leandro he investigado sobre el DataBound() y he visto por ahi unos ejemplos para que antes de ocultar la columna pueda tener acceso al contenido de la columna . .
    miércoles, 3 de marzo de 2010 13:11
  • hola

    te refieres a algo como lo planteado aqui

    Recoger Valor Invisible de un GridView


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 3 de marzo de 2010 13:16