kn0kit Posted March 30, 2012 at 12:58 PM Report #446582 Posted March 30, 2012 at 12:58 PM Boas.. Tou a desenvolver uma aplicacao em Dojo, onde e' utilizada uma enhanced grid. Os dados utilizados para preenchimento da tabela estao armazenados numa ObjectStore que e' obtida da cache ou do servidor.. A minha questao e', como e' que posso fazer para formatar os dados antes de preencher a tabela. Por exemplo, tenho um array que quero separar e quero criar varias linhas com a informacao que tenho. Como consigo obter os objectos da store, altera-los e criar nova store ou actualizar a que tinha antes? Nao sei se consegui exprimir correctamente o meu objectivo e tambem nao tenho muitos conhecimentos de Dojo, comecei so' agora a aprender. 😕 Cumprimentos. 😄
kn0kit Posted April 11, 2012 at 06:43 AM Author Report #448518 Posted April 11, 2012 at 06:43 AM Hmm.. talvez nao tenha conseguido exprimir correctamente a minha questao. Ou sera que ninguem percebe de Dojo!? 🙂 De qualquer maneira, tenho a seguinte store: myStore = dojo.store.Cache(jsonStore, memoryStore); E imaginemos que myStore contem um array de objectos do genero: Object >head: Array[3] > 0 : "name" > 1 : "arr1" > 2 : "arr2" >list: Array[3] > 0 : "Coordenadas" > 1 : Array[9] > 2 : Array[3] O objectivo e' criar uma dropdown list com os varios nomes dos objectos, e dependendo do objecto seleccionado na dropdown mostrar uma tabela (enhanced grid) preenchida com arr1 e arr2. Como e' que consigo aceder a esses dois arrays, de modo a separado-los em varios objectos e criar uma store para enviar para preenchimento da grid? Cumprimentos..
taviroquai Posted April 11, 2012 at 02:42 PM Report #448602 Posted April 11, 2012 at 02:42 PM Para populares o elemento select, podes criar o elemento em html... <div id="dropdownbox"></div> Depois com dojo (dijit)... // incluir a biblioteca dojo.require("dijit.form.Select"); // criar o select var caixa = new dijit.form.Select({ name: "dropdownbox", store: myStore, onChange: function() { var selecionado = dijit.byId("dropdownbox").get("value"); // fazer mais coisas com base no valor selecionado... } }, "dropdownbox"); // render da caixa caixa.startup(); Com base no valor selecionado, terás que voltar a consultar a store para ir buscar os outros valores pretendidos... Referencia: http://dojotoolkit.org/documentation/tutorials/1.6/selects_using_stores/
kn0kit Posted April 13, 2012 at 08:58 AM Author Report #448908 Posted April 13, 2012 at 08:58 AM Obrigado pela resposta, a ideia era mesmo essa. 😄 So' tenho um problema, a funcao de onChange nao dispara e nao percebo porque. 🙂 Alias, eu ate' estava a utilizar FilteringSelect e funcionava bem, com a excepcao de nao disparar a funcao onChange. Agora alterei para Select e apenas recebo o seguinte erro na consola: Uncaught TypeError: undefined is not a function
taviroquai Posted April 13, 2012 at 02:45 PM Report #448965 Posted April 13, 2012 at 02:45 PM Podes registar eventos nos objectos com dojo.connect() Antes do startup... // render da caixa dojo.connect(caixa, 'onchange', function() { var selecionado = dijit.byId("dropdownbox").get("value"); // fazer mais coisas com base no valor selecionado... }); Referencia: http://dojotoolkit.org/reference-guide/1.7/dojo/connect.html
kn0kit Posted April 25, 2012 at 09:06 AM Author Report #451300 Posted April 25, 2012 at 09:06 AM Grande ajuda!! 😉 Ja consegui meter uma FilteringSelect para seleccionar os items e dependendo do item seleccionado mostrar informacao numa TextBox e na Grid. 😛 Agora surgiu-me outro problema/duvida...como e' que ao editar o conteudo da TextBox ou da Grid consigo salvar as alteracoes no servidor!? Isto e'...para preencher a grid, criei outra store (o que talvez nao tenha sido a melhor ideia, mas nao descobri outra) e na textbox apenas inseri o conteudo no campo value, logo nao tenho nenhum metodo que me permita salvar as alteracoes na store original! Alguma ideia diferente? Estou a ir pelo caminho errado? Cumprimentos..
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now