kn0kit Posted March 30, 2012 Report Share Posted March 30, 2012 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. 😄 Link to comment Share on other sites More sharing options...
kn0kit Posted April 11, 2012 Author Report Share Posted April 11, 2012 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.. Link to comment Share on other sites More sharing options...
taviroquai Posted April 11, 2012 Report Share Posted April 11, 2012 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/ Link to comment Share on other sites More sharing options...
kn0kit Posted April 13, 2012 Author Report Share Posted April 13, 2012 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 Link to comment Share on other sites More sharing options...
taviroquai Posted April 13, 2012 Report Share Posted April 13, 2012 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 Link to comment Share on other sites More sharing options...
kn0kit Posted April 25, 2012 Author Report Share Posted April 25, 2012 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.. Link to comment Share on other sites More sharing options...
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