adf:table com selectbooleancheckbox

Forum sobre a ferramenta Oracle JDeveloper, ADF, OAF, etc. (Não é destinado ao aprendeziado da Linguagem Java em geral)
Responder
Mick
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 69
Registrado em: Sex, 08 Fev 2008 11:20 am
Localização: São Paulo - SP

Oi pessoal....

Eu estou com o seguinte problema...

eu tenho uma adf:table que eu crei a partir do meu ViewObject... e adicionei a ela uma corecolumn(sem binding nenhum)... e nesta coluna eu coloquei um selectbooleancheckbox....

Eu queria saber o seguinte... como eu faço pra saber se o usuário checou ou não cada linha da tabela?.... ou seja como eu faço pra pegar o valor de cada linha de uma determinada coluna..?..

Quanto aos elementos que eu possuo no meu View Object ,,, eu não tive problemas... eu fiz o seguinte:

Selecionar tudo

 FacesContext fc = FacesContext.getCurrentInstance();
       ValueBinding vb = fc.getApplication().createValueBinding("#{bindings}");
       DCBindingContainer bc = (DCBindingContainer) vb.getValue(fc);

       DCIteratorBinding dcIter = (DCIteratorBinding)bc.get("TipoTapeView1Iterator");
       dcIter .setRangeSize(-1); //ALL ROWS

       Row[] rows = dcIter.getAllRowsInRange();

       for(int i=0; i<rows.length; i++) {
       Row r = rows[i];
       JOptionPane.showMessageDialog(null,r.getAttribute("IdTape")); 
       }
Agora eu quero saber.. como eu faço isso pra coluna que eu não tenho um atributo equivalente, no meu ViewObjcet...

Não sei se deu pra entendet.. :wink:

Qualquer sugestão será muito bem vinda...
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

teu adf ta fluindo hein
:D

não entendi o que você quer!!!

:(
Mick
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 69
Registrado em: Sex, 08 Fev 2008 11:20 am
Localização: São Paulo - SP

Hehe.... pois é... agora as coisas estão "menos' difíceis hehe... aprendi muita coisa,... e o fórum já me ajudou bastante!!,... :D

Bom.. é o seguinte... eu tenho a seguinte tabela :

Selecionar tudo

<af:table value="#{bindings[\'Tipo_de_TapesView1\'].collectionModel}"
                  var="row" rows="#{bindings[\'Tipo_de_TapesView1\'].rangeSize}"
                  first="#{bindings[\'Tipo_de_TapesView1\'].rangeStart}"
                  emptyText="#{bindings[\'Tipo_de_TapesView1\'].viewable ? \'No rows yet.\' : \'Access Denied.\'}"
                  binding="#{backing_untitled1.table2}" id="table2">
          <af:column sortProperty="IdTape" sortable="false"
                     headerText="#{bindings[\'Tipo_de_TapesView1\'].labels.IdTape}"
                     binding="#{backing_untitled1.column9}" id="column9">
            <af:outputText value="#{row.IdTape}"
                           binding="#{backing_untitled1.outputText9}"
                           id="outputText9"/>
          </af:column>
          <af:column sortProperty="Teste" sortable="false"
                     binding="#{backing_untitled1.column16}" id="column16">
            <af:selectBooleanCheckbox
                                      binding="#{backing_untitled1.selectBooleanCheckbox1}"
                                      id="selectBooleanCheckbox1"/>
          </af:column>
        </af:table>
Esta é minha tabela... a primeira coluna .. é resultando de uma View... eu simplesmente arrastei...
a seguna coluna ... eu coloquei manualmente.. e dentro dessa coluna eu coloquei um checkbox... a questão é: Como acessar cada um desses checkbox?...
ou seja como saber qual está checado ou não?.....
Eu preciso fazer uma espécie de tabela de perguntas e respostas (com sim ou não... neste caso checado ou não).. no banco eu tenho uma tabela de perguntas... e tenha uma outra tabela que são armazenadas as respostas de cada usuário para determinada pergunta...

Eu tentei trabalhar com o Corecolumn.. mas não tive muito sucesso
Deu pra entender :wink: ... se tiver também uma sugestão pra resolver isso de outra forma... qualquer idéia é bem vinda..
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

bom.. vamos ver se eu entendi.. :D

Selecionar tudo

<af:selectBooleanCheckbox 
      binding="#{backing_untitled1.selectBooleanCheckbox1}" 
      id="selectBooleanCheckbox1"/> 

não vou nem te falar que no managed bean backing_untitled1 você pode acessar esse seu componente atraves do objeto selectBooleanCheckbox1 pois você com certeza já deve saber então presumo que você esta querendo acessar ele no teu application module..
você pode criar um campo transient no teu VO, ou seja um campo que não tera um correspondente na query e dai você vai ter controle dele

seria isso ?!?!
Mick
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 69
Registrado em: Sex, 08 Fev 2008 11:20 am
Localização: São Paulo - SP

hehe... eu sei em partes....

Bom eu sei que eu posso acessar o selectBooleanCheckbox1 no backing_untitled1.. sei que eu posso fazer uma condição assim:

Selecionar tudo

if(getSelectBooleanCheckbox1().isSelected())
pra saber se ele está selecionado ou não... ou ainda , dar um getValue..... MAS .. esse SelectBooleanCheckbox1 está dentro de uma coluna....
Por exemplo .. se essa coluna tem 5 linha... como eu faço pra acessar, os 5 SelectBooleanCheckbox, que estarão dentro dessa coluna?.. essa é a minha dúvida...!!!

Eu até já tinha pensado em fazer dessa forma... com uma coluna transient.... eu criei uma coluna transient do tipo boolean, mas quando crio a tabela.... e troco o outputtext da coluna por um selectbooleancheckbox... ele fica desabilitado .... sem deixar clicar

Selecionar tudo

<af:column sortProperty="Teste" sortable="true"
                     headerText="#{bindings[\'Tipo_de_TapesView1\'].labels.Teste}"
                     binding="#{backing_untitled1.column19}" id="column19">
            <af:selectBooleanCheckbox
                                      binding="#{backing_untitled1.selectBooleanCheckbox3}"
                                      id="selectBooleanCheckbox3"
                                      value="#{row.Teste}"
                                      required="#{bindings[\'Tipo_de_TapesView1\'].attrDefs.Teste.mandatory}"/>
</af:column>
Mas a questão mesmo ... é como acessar o selectbooleancheckbox dentro de um column... pegar todas as linhas....
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

em js você pode fazer algo do tipo

Selecionar tudo

function marcarTodos(idForm, idGrid) 
{
    var filial = document.forms[idForm].elements[idGrid];

    var intSelectedFilial = document.forms[idForm].elements[idGrid].options.length;

    for( i = 0; i < intSelectedFilial; i++ ) 
    {
      document.forms[idForm].elements[idGrid].options[i].selected = true;
    }
    
    return false;
}
agora isso que você ta querendo ...
tem de ser feito com o campo transient e interar sobre os rows do vo la no seu am..
ele so vem desmarcado pois você não colocou ele como updatable always
para isso basta clicar duas vezes no seu VO
na janela que vai abrir, você deve expandir os attributes
dai procure o seu atributo transient e marque a opção updatable always
Mick
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 69
Registrado em: Sex, 08 Fev 2008 11:20 am
Localização: São Paulo - SP

Consegui!!!!!!!!!!!!!........ :-o


Mais uma vez valeu pela grande ajuda Victor....

Só mudei mesmo para updatable always ... e aí consegui acessar .. com aquele código que eu postei em primeiro ..... e verificar se é true ou false......


valeu.... :D
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

e que eu sempre tento te enviar o max de informações possiveis
mas que bom que você conseguiu com a sua solução

fica na paz e sucesso
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes