<div dir="ltr">Como sou melhor em back-end prefiro gerar toda alimentação dos componentes com os módulos que implementei. Fazendo isso não preciso digitar um linha XML ou JSON. Implementar bar ou foo é questão de gosto.<div>
<br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">Em 27 de abril de 2014 18:21, Eduardo Almeida <span dir="ltr"><<a href="mailto:eduardo@web2solutions.com.br" target="_blank">eduardo@web2solutions.com.br</a>></span> escreveu:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000"><div class="">
    <div>On 26/04/2014 21:20, Lucas Moraes
      wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">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.
        <div>
          Se esta interessado em usar XML veja isso:</div>
        <div><a href="http://www.dhtmlx.com/docs/products/docsExplorer/doc/dhtmlxxml/index.html" target="_blank">http://www.dhtmlx.com/docs/products/docsExplorer/doc/dhtmlxxml/index.html</a><br>
        </div>
        <div><br>
        </div>
        <div>Falou.</div>
      </div>
    </blockquote>
    <br></div>
    Na verdade, não é bem assim.<br>
    <br>
    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.<br>
    <br>
    <br>
    <small><font face="Courier New, Courier, monospace">var model = {<br>
            "conf_grid": {<br>
                    "headers": "ID,Form label,Form name",<br>
                    "ids": "form_id,formlabel,formname",<br>
                    "widths": "90,450,0",<br>
                    "colaligns": "right,left,left",<br>
                    "coltypes": "ro,ro,ro",<br>
                    "colsorting": "int,str,str"<br>
            }<br>
        }<br>
        <br>
        <br>
        var myController = {<br>
            uid = null,<br>
            model : null<br>
            ,grid : []<br>
            ,_grid : function( uid )<br>
            {<br>
                var self = this;<br>
                self.grid[ uid ] = self.layout[ uid
        ].cells("a").attachGrid();<br>
                self.grid[ uid ].setHeader( self.model.conf_grid.headers
        );<br>
                self.grid[ uid ].setColumnIds( self.model.conf_grid.ids
        );<br>
                self.grid[ uid ].setInitWidths(
        self.model.conf_grid.widths );<br>
                self.grid[ uid ].setColAlign(
        self.model.conf_grid.colaligns );<br>
                self.grid[ uid ].setColTypes(
        self.model.conf_grid.coltypes );<br>
                self.grid[ uid ].setColSorting(
        self.model.conf_grid.colsorting );<br>
                self.grid[ uid ].init();<br>
            }<br>
        <br>
            ,start : function(  )<br>
            {<br>
                var self = this;<br>
                self.uid = "myAppName" + ((new Date()).getTime());<br>
                self._grid( self.uid );<br>
            }<br>
        <br>
            ,init : function( model )<br>
            {<br>
                var self = this;<br>
                self.model = model;<br>
            }<br>
        }<br>
        <br>
        myController.init( model );<br>
        <br>
        <br>
        window.onload = function()<br>
        {<br>
            myController.start();<br>
        }</font></small><br>
    <br>
    <br>
    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.<br>
    <br>
    <br>
    <b>Resumindo</b><br>
    <br>
    primeiro você deve se perguntar: <br>
    por que quero usar metadados (JSON, XML) para configurar grids?<br>
    <br>
    Configurar grids com metadados é muito util quando você deseja usar
    metadados gerados no servidor ou via metaprogramming.<br>
    <br>
    Configurar grids usando metadados só porque é cool, na verdade é um
    tiro no pé. <br>
    <br>
    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. <br>
    <br>
    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).<br>
    <br>
    Então, nesse caso a premissa "keep it simple, stupid" valerá muito
    mais do que ter um código "cool".<br>
    <br>
    <br>
    my cents<div><div class="h5"><br>
    <br>
    <blockquote type="cite">
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">Em 26 de abril de 2014 19:01, Nilton OS
          <span dir="ltr"><<a href="mailto:jniltinho@gmail.com" target="_blank">jniltinho@gmail.com</a>></span>
          escreveu:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div dir="ltr">Perdão Eduardo, estou me referindo a esse
              comentário aqui.<br>
              <br>
              Great work! Does the dhtmlxGrid now support a JSON payload
              for the header or still XML only?<br>
              <br>
              Unfortunately, this version won’t support a JSON payload
              for the header.<br>
              <br>
              <br>
              É correto a afirmação ?<br>
              <br>
              <br>
            </div>
            <div class="gmail_extra"><br clear="all">
              <div>
                <div dir="ltr">
                  <div>..............................................................................................<br>
                     <b>Nilton OS</b> | <b><span lang="en"><span>Working</span>
                        <span>Linux</span> <span>15 years ago</span></span></b>
                    | <a href="http://www.linuxpro.com.br" target="_blank">linuxpro.com.br</a><br>
                    <br>
                  </div>
                  <i><font size="1">"</font></i><i><font size="1">Só tem
                      o direito de criticar aquele que pretende ajudar.
                      AL"</font></i><br>
                </div>
              </div>
              <br>
              <br>
              <div class="gmail_quote">Em 26 de abril de 2014 12:06,
                Eduardo Almeida <span dir="ltr"><<a href="mailto:eduardo@web2solutions.com.br" target="_blank">eduardo@web2solutions.com.br</a>></span>
                escreveu:
                <div>
                  <div>
                    <br>
                    <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      <div bgcolor="#FFFFFF" text="#000000">
                        <div>On 26/04/2014 11:49, Nilton OS wrote:<br>
                        </div>
                        <blockquote type="cite">
                          <div dir="ltr">
                            <div>No final de Maio vai sair a versão 4.0
                              do Framework JS DHTMLX<br>
                              <br>
                              <br>
                              <a href="http://www.dhtmlx.com/blog/?p=2225" target="_blank">http://www.dhtmlx.com/blog/?p=2225</a><br>
                              <br>
                            </div>
                            Pena que ainda não suporta JSON para o GRID
                            de Dados.<br>
                          </div>
                        </blockquote>
                        I'm sorry????<br>
                        <br>
                        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:<br>
                        <br>
                        row = {<br>
                            col1 : "foo",<br>
                            col2 : "bar",<br>
                            col3 : "baz"<br>
                        }<br>
                        <br>
                        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)<br>
                        <br>
                        my cents<br>
                        <blockquote type="cite">
                          <div dir="ltr"> <br>
                            Ã‰ uma Ã³tima lib para criar interfaces para
                            WEB bem legais.<br>
                          </div>
                          <br>
                          <fieldset></fieldset>
                          <br>
                          <pre>=begin disclaimer
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a>
 L<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank"><http://mail.pm.org/mailman/listinfo/saopaulo-pm></a>
=end disclaimer
</pre>
                          <span><font color="#888888"> </font></span></blockquote>
                        <span><font color="#888888"> <br>
                            <br>
                            <div>-- <br>
                              Eduardo Almeida - Software Engineer<br>
                              <a href="mailto:eduardo@web2solutions.com.br" target="_blank">eduardo@web2solutions.com.br</a>
                              - <a href="tel:27%203262-1882" value="+552732621882" target="_blank">27
                                3262-1882</a> / <a href="tel:27%209839%203755" value="+552798393755" target="_blank">27
                                9839 3755</a><br>
                              <br>
                              <b>WEB2 Solutions</b> - Inovando, sempre!
                              <br>
                              <img src="cid:part12.04050805.08060209@web2solutions.com.br"></div>
                          </font></span></div>
                      <br>
                      =begin disclaimer<br>
                         Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
                       SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
                       L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
                      =end disclaimer<br>
                      <br>
                    </blockquote>
                  </div>
                </div>
              </div>
              <br>
            </div>
            <br>
            =begin disclaimer<br>
               Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
             SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
             L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
            =end disclaimer<br>
            <br>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      <pre>=begin disclaimer
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a>
 L<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank"><http://mail.pm.org/mailman/listinfo/saopaulo-pm></a>
=end disclaimer
</pre>
    </blockquote>
    <br>
    <br>
    </div></div><div><div><div class="h5">-- <br>
      Eduardo Almeida - Software Engineer<br>
      </div></div><a href="mailto:eduardo@web2solutions.com.br" target="_blank">eduardo@web2solutions.com.br</a> - <a href="tel:27%203261-0082" value="+552732610082" target="_blank">27 3261-0082</a> / <a href="tel:27%209839%203755" value="+552798393755" target="_blank">27 9839 3755</a><div class="">
<br>
      <br>
      <b>WEB2 Solutions</b> - Inovando, sempre!
      <br>
      <img src="cid:part19.09020309.05020402@web2solutions.com.br"></div></div>
  </div>

<br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br></div>