<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">On 26/04/2014 21:20, Lucas Moraes
wrote:<br>
</div>
<blockquote
cite="mid:CAPpv0_q=Wu4EWzgC421x1QRTgJ==M=hYAqt=V3Pxv56TKvrNUw@mail.gmail.com"
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 moz-do-not-send="true"
href="http://www.dhtmlx.com/docs/products/docsExplorer/doc/dhtmlxxml/index.html">http://www.dhtmlx.com/docs/products/docsExplorer/doc/dhtmlxxml/index.html</a><br>
</div>
<div><br>
</div>
<div>Falou.</div>
</div>
</blockquote>
<br>
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<br>
<br>
<blockquote
cite="mid:CAPpv0_q=Wu4EWzgC421x1QRTgJ==M=hYAqt=V3Pxv56TKvrNUw@mail.gmail.com"
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 moz-do-not-send="true"
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 moz-do-not-send="true"
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
moz-do-not-send="true"
href="mailto:eduardo@web2solutions.com.br"
target="_blank">eduardo@web2solutions.com.br</a>></span>
escreveu:
<div>
<div class="h5">
<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 moz-do-not-send="true"
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 moz-do-not-send="true" href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a>
SaoPaulo-pm mailing list: <a moz-do-not-send="true" href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a>
L<a moz-do-not-send="true" 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 moz-do-not-send="true"
href="mailto:eduardo@web2solutions.com.br"
target="_blank">eduardo@web2solutions.com.br</a>
- <a moz-do-not-send="true"
href="tel:27%203262-1882"
value="+552732621882" target="_blank">27
3262-1882</a> / <a
moz-do-not-send="true"
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
moz-do-not-send="true"
href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
SaoPaulo-pm mailing list: <a
moz-do-not-send="true"
href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
L<<a moz-do-not-send="true"
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 moz-do-not-send="true"
href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
SaoPaulo-pm mailing list: <a moz-do-not-send="true"
href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
L<<a moz-do-not-send="true"
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 class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">=begin disclaimer
Sao Paulo Perl Mongers: <a class="moz-txt-link-freetext" href="http://sao-paulo.pm.org/">http://sao-paulo.pm.org/</a>
SaoPaulo-pm mailing list: <a class="moz-txt-link-abbreviated" href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a>
L<a class="moz-txt-link-rfc2396E" href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"><http://mail.pm.org/mailman/listinfo/saopaulo-pm></a>
=end disclaimer
</pre>
</blockquote>
<br>
<br>
<div class="moz-signature">-- <br>
Eduardo Almeida - Software Engineer<br>
<a class="moz-txt-link-abbreviated" href="mailto:eduardo@web2solutions.com.br">eduardo@web2solutions.com.br</a> - 27 3261-0082 / 27 9839 3755<br>
<br>
<b>WEB2 Solutions</b> - Inovando, sempre!
<br>
<img src="cid:part19.09020309.05020402@web2solutions.com.br"></div>
</body>
</html>