none
Coluna de Checkbox não edita - Check box não altera status RRS feed

  • Pergunta

  • Bom dia pessoal, estou com um problema, sou iniciante, e criei um DataGridView com os dados provenientes da base, o gridview popula sem problemas com linq, mas tem uma coluna de checkbox que não altera a seleção, ou seja, se no banco de dados estiver checked a coluna não desmarca o checkbox. Não sei se consegui explicar, de qualquer forma alguem sabe como fazer esses checkbox editaveis?

    Obrigado
    David de Barros http://wpro.com.br
    quarta-feira, 13 de janeiro de 2010 15:06

Respostas

  • Bom Galera, depois de duas noites sem dormir e aumentado as visitas do buscador um bom tanto, consegui. Vou colocar a resposta aqui, vai que serve para mais alguém que está com o mesmo problema.


    O datagridview é ReadOnly se e anonymous types quando é bindado com uma consulta sql.


    Solução:


    Seta AutoGenerateColumns do GridView para false

    e na consulta sql com linq seleciona todos os campos ou seja, select m; ao invés de select new ...


    Espero que ajude algum perdidao q nem eu..


    Vlw Pessoal

    David de Barros http://www.wpro.com.br
    • Marcado como Resposta David de Barros sexta-feira, 15 de janeiro de 2010 04:00
    sexta-feira, 15 de janeiro de 2010 04:00

Todas as Respostas

  • Ola David
    Verifica a coluna checkbox do seu DataGridView não esta como ReadOnly....
    quarta-feira, 13 de janeiro de 2010 15:32
  • Não, não está como check ReadOnly, e só acontece esse problema quando eu populo ela com Dados do Banco de dados, sem esses dados eles funcionam normal.

    David de Barros http://www.wpro.com.br
    quarta-feira, 13 de janeiro de 2010 15:55
  • David,

    Verifique se o nome da Coluna do seu DataGridView que o do Tipo CheckBox está com o mesmo nome da Coluna do Binding que carrega o Grid.

    Porque se estiver diferente ele não consegue associar os dados.
    quarta-feira, 13 de janeiro de 2010 16:03
  • Prezado David, na coluna que tem o checkbox vc associou a propriedade DataPropertyName a coluna de sua query ao qual vc esta trazendo os dados?

    E vc deve habilitar a edição no próprio DataGridView para que seja possível a troca de status desta coluna.

    Abs,

    Se for útil marque como tal, se for a resposta, marque-a também. Procure ajudar a quem mais precisa
    • Sugerido como Resposta Ricardo D. Beck quarta-feira, 13 de janeiro de 2010 17:06
    quarta-feira, 13 de janeiro de 2010 17:03
  • Davi, cheque nas propriedades da coluna checkbox, na parte dados, os seguintes valores:

    FalseValue
    IndeterminateValue
    TrueValue

    Voce tem que deixar um valor setado pra checar.

    Ou seja digamos que na sua base voce grave S para sim e N para nao, ficaria assim:

    FalseValue = N
    IndeterminateValue = N
    TrueValue = S

    Associado com os valores, vai ficar tudo certinho!
    • Sugerido como Resposta Daniel Ianegitz quarta-feira, 13 de janeiro de 2010 17:19
    quarta-feira, 13 de janeiro de 2010 17:18
  • Pois é pessoal, testei de tudo q foi forma, os dados estao gravados na base como 0  e  1 para false e true respectivamente. Segue um trecho do código abaixo:

                   

    dcDataContext dc = new dcDataContext(); var qm = from m in dc.USER_GROUPS_MODULES where m.MID_GROUP.Equals(Convert.ToInt32(idg)) select new {m.MID, m.MODULE, m.ALLOW_VIEW, m.ALLOW_EDIT, m.ALLOW_ADD, m.ALLOW_DEL }; GridViewModules.DataSource = qm; //retornando ReadOnly MessageBox.Show(GridViewModules.Columns[2].ReadOnly.ToString());

    Coloquei  um MessageBox para ver qual o resultado está retornando e ele volta como true ... aparentemente é só colocar o código como

    GridViewModules.Columns[2].ReadOnly = false;

    e tudo bem ... mas ai me aparece o erro:

    "A coluna DataGridView ligada a um campo somente leitura deve ter ReadOnly definida como True."

    Pode ser que o problema esteja relacionado a propriedade ReadOnly, mas ainda não achei onde alterar. No data context eu já selecionei essa opção como false, mas nada ....

    Engraçado que seu popular ela manualmente ... o checkbox funciona normalmente.



    Se tiverem uma idéia do que eu posso fazer vai me ajudar bastante ...




    Obrigado por enquanto




    David de Barros http://www.wpro.com.br
    quarta-feira, 13 de janeiro de 2010 22:16
  • Bom Galera, depois de duas noites sem dormir e aumentado as visitas do buscador um bom tanto, consegui. Vou colocar a resposta aqui, vai que serve para mais alguém que está com o mesmo problema.


    O datagridview é ReadOnly se e anonymous types quando é bindado com uma consulta sql.


    Solução:


    Seta AutoGenerateColumns do GridView para false

    e na consulta sql com linq seleciona todos os campos ou seja, select m; ao invés de select new ...


    Espero que ajude algum perdidao q nem eu..


    Vlw Pessoal

    David de Barros http://www.wpro.com.br
    • Marcado como Resposta David de Barros sexta-feira, 15 de janeiro de 2010 04:00
    sexta-feira, 15 de janeiro de 2010 04:00