On 26/04/2014 21:20, Lucas Moraes wrote:
Nilton com JSON você só conseguira alimentar sua Grid com os dados, mas não conseguira criar o cabeçalho com o nome dos campos. Com XML você consegui criar o cabeçalho e também alimentar a Grid. Esse é um dos motivos que eu uso apenas XML no DHTMLX.
Se esta interessado em usar XML veja isso:
http://www.dhtmlx.com/docs/products/docsExplorer/doc/dhtmlxxml/index.html

Falou.

Na verdade, não é bem assim.

Sim, originalmente, a lib não te permite configurar grids com JSON, porém, isso poderia ser facilmente implementado quando vc implementa camadas. No exemplo á seguir tenho dois objetos literais (JSON). Um armazena estado, configurações e modelo de dados. Na outra eu instancio componentes e controlo a aplicação. Não há necessariamente uma necessidade de se criar views, uma vez que os próprios componentes já geram as 'views' durante o runtime.


var model = {
    "conf_grid": {
            "headers": "ID,Form label,Form name",
            "ids": "form_id,formlabel,formname",
            "widths": "90,450,0",
            "colaligns": "right,left,left",
            "coltypes": "ro,ro,ro",
            "colsorting": "int,str,str"
    }
}


var myController = {
    uid = null,
    model : null
    ,grid : []
    ,_grid : function( uid )
    {
        var self = this;
        self.grid[ uid ] = self.layout[ uid ].cells("a").attachGrid();
        self.grid[ uid ].setHeader( self.model.conf_grid.headers );
        self.grid[ uid ].setColumnIds( self.model.conf_grid.ids );
        self.grid[ uid ].setInitWidths( self.model.conf_grid.widths );
        self.grid[ uid ].setColAlign( self.model.conf_grid.colaligns );
        self.grid[ uid ].setColTypes( self.model.conf_grid.coltypes );
        self.grid[ uid ].setColSorting( self.model.conf_grid.colsorting );
        self.grid[ uid ].init();
    }

    ,start : function(  )
    {
        var self = this;
        self.uid = "myAppName" + ((new Date()).getTime());
        self._grid( self.uid );
    }

    ,init : function( model )
    {
        var self = this;
        self.model = model;
    }
}

myController.init( model );


window.onload = function()
{
    myController.start();
}


Nota : estou usando array associativo ( grid : [] ) para armazenar instancias de componente pois dessa forma vc consegue facilmente, dentre outras coisas, por exemplo, executar a mesma aplicação em diferentes instancias no mesmo browser. Em outras palavras, voce poderia rodar a mesma aplicação em diferentes instancias de DHTMLXwindow.


*Resumindo*

primeiro você deve se perguntar:
por que quero usar metadados (JSON, XML) para configurar grids?

Configurar grids com metadados é muito util quando você deseja usar metadados gerados no servidor ou via metaprogramming.

Configurar grids usando metadados só porque é cool, na verdade é um tiro no pé.

Na verdade, gerar metadados no servidor para configurar componentes no cliente sem motivos lógicos você estará apenas dificultando a vida de um programador front end que for trabalhar no seu código. Porque um programador front end, sem rodar a aplicação, não conseguirá entender qual é a estrutura final que sua grid terá, ao menos que ele consiga também interpretar o seu código server side que gera os metadados.

Em outras palavras, ele não conseguirá ter em mente o design da grid sem compreender o server side ou caso não haja algum tipo de documentação que indique a estrutura do metadado gerado e "injetado" na aplicação via requisição http (ajax por exemplo).

Então, nesse caso a premissa "keep it simple, stupid" valerá muito mais do que ter um código "cool".


my cents



Em 26 de abril de 2014 19:01, Nilton OS <[email protected] <mailto:[email protected]>> escreveu:

    Perdão Eduardo, estou me referindo a esse comentário aqui.

    Great work! Does the dhtmlxGrid now support a JSON payload for the
    header or still XML only?

    Unfortunately, this version won't support a JSON payload for the
    header.


    É correto a afirmação ?



    
..............................................................................................
    *Nilton OS* | *Working Linux 15 years ago* | linuxpro.com.br
    <http://www.linuxpro.com.br>

    /"//Só tem o direito de criticar aquele que pretende ajudar. AL"/


    Em 26 de abril de 2014 12:06, Eduardo Almeida
    <[email protected]
    <mailto:[email protected]>> escreveu:

        On 26/04/2014 11:49, Nilton OS wrote:
        No final de Maio vai sair a versão 4.0 do Framework JS DHTMLX


        http://www.dhtmlx.com/blog/?p=2225

        Pena que ainda não suporta JSON para o GRID de Dados.
        I'm sorry????

        MAN, suporta JSON sim. Ate versão 3.5, a estrutura do JSON
        esperado pela grid era bem peculiar ... a partir da 3.5, vc
        foi implementado o suporte á mais um model, digamos que um
        modelo de JSON mais genérico:

        row = {
            col1 : "foo",
            col2 : "bar",
            col3 : "baz"
        }

        Na versão 4.0, ha ainda uma nova feature bem produtiva, foi
        implementado um novo método padrão de carregamento de dados
        que funciona exatamente igual em todos os componentes. Até
        então, cada componente possuia uma forma diferente de carregar
        dados, bem como não havia muita similaridade no modelo de
        estrutura de dados (JSON)

        my cents

        Ã0/00 uma ótima lib para criar interfaces para WEB bem legais.


        =begin disclaimer
            Sao Paulo Perl Mongers:http://sao-paulo.pm.org/
          SaoPaulo-pm mailing list:[email protected]  
<mailto:[email protected]>
          L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>  
<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
        =end disclaimer


-- Eduardo Almeida - Software Engineer
        [email protected]
        <mailto:[email protected]> - 27 3262-1882
        <tel:27%203262-1882> / 27 9839 3755 <tel:27%209839%203755>

        *WEB2 Solutions* - Inovando, sempre!

        =begin disclaimer
           Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
         SaoPaulo-pm mailing list: [email protected]
        <mailto:[email protected]>
         L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
        =end disclaimer



    =begin disclaimer
       Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
     SaoPaulo-pm mailing list: [email protected]
    <mailto:[email protected]>
     L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
    =end disclaimer




=begin disclaimer
    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
  SaoPaulo-pm mailing list: [email protected]
  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer


--
Eduardo Almeida - Software Engineer
[email protected] - 27 3261-0082 / 27 9839 3755

*WEB2 Solutions* - Inovando, sempre!
=begin disclaimer
   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
 SaoPaulo-pm mailing list: [email protected]
 L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer

Responder a