coluna boolean cfgrid como Sim / Não

votos
3

Eu tenho uma coluna tipo boolean em uma cfgrid html. Os dados são armazenados na base de dados como 1/0 e é retornado a partir de CF tal como. Eu quero o usuário para ver Sim / Não em vez de 1/0. Tentei QuerySetCell, e não poderia fazê-lo funcionar.

A forma é editável, quando fizer duplo-clique na célula, as caixas de mostrar e ele atualiza como deveria. O único problema é o display.

<cfform>
   <cfgrid name=blah format=html bind=mycfccall selectmode=edit>
      <cfgridcolumn name=bitCol header=Is it width=75 type=boolean>
   </cfgrid>
</cfform>

Desde já, obrigado...

Publicado 19/05/2009 em 20:04
fonte usuário
Em outras línguas...                            


2 respostas

votos
6

Você precisará aplicar um renderizador de campo personalizado. Você vai precisar adicionar uma função de js init () para sua página, juntamente com um método renderizador. Eu tenho o processo básico de aplicação de um renderizador personalizado no meu blog:

CF8 Ajax Grid: Renderers e Eventos

Basicamente, você vai chamar seu método init () depois que a grade foi inicialmente processada, usando o método ajaxOnLoad ():

<cfset ajaxOnLoad("init") />

Dentro de seu método init (), você teria uma referência à rede e é ColumnModel:

init = function() {
    var myGrid = ColdFusion.Grid.getGridObject('myGridID');
    var gridCM = myGrid.getColumnModel();
    // The rest goes here
}

Você também vai precisar do seu método de renderização, que você pode aplicar a qualquer coluna:

yesNoRenderer = function(value,meta,record,row,column,store) {
    if (value === 1){
        return "Yes";
    } else {
        return "No";
    }
}

Após o que, você precisa aplicar o renderizador para a coluna de sua escolha:

gridCM.setRenderer(cm.getIndexById('myColumnName'), yesNoRenderer);

O método setRenderer leva o índice de coluna (a partir de 0) e a função a aplicar como um processador. O método getIndexById () deve funcionar aqui, mas você deve testá-lo primeiro para ter certeza, e lembre-se que caixa é importante em JavaScript.

A maioria dos componentes CF Ajax usar ext 1,1 sob o capô. Leia cuidadosamente A documentação Adobe sobre as funções ColdFusion JavaScript , e lembre-se que você pode tocar em subjacente Ext 1.1 API .

Respondeu 19/05/2009 em 20:47
fonte usuário

votos
1

Eu acho que vai ser mais fácil de usar Decode na sua consulta de banco de dados:

Decode(bitCol,1,'Yes','No') bitCol
Respondeu 21/04/2010 em 12:17
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more