Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
olá pessoal estou tentando criar uma função js mas to com um pouco de dificuldade.
Essa função abaixo seria meu módulo Album q seria responsável pelas ações do objeto Album.
no caso eu chamo esse modulo em outra pág e chamo
MyAlbumModule.setForm();
MyAlbumModule.setGrid();
beleza até ae ele funciona de boa..
Mas eu quero que atualize o grid assim q for inserido um novo valor pelo form.
a função responsável pelo ajax q irá incluir os dados é a private.put(); e é nela q eu preciso chamar a setGrid mas não estou conseguindo fazer isso
abaixo segue meu code.. desde já obrigado
define([
"dojo/dom",
"dojo/domReady",
"dojo/My/MyFormModule",
"dojo/My/MyGridModule",
"dojo/_base/xhr"
], function(dom, domReady, MyFormModule, MyGridModule, Ajax){
var private = {
/**
* private.put
*
* Função irá fazer a validação do formulário e realizar a edição ou criação de um novo album
*
* @return void
*/
put: function(){
var form = MyFormModule.getForm();
if(form.validate()){
var Album = {
id: dom.byId('form_album_id').value,
nome: dom.byId('form_album_nome').value
}
Ajax.post({
form: 'acme_albumbundle_album',
url: '/put/',
load: function(data){
alert(data);
setG
},
error: function(){
}
})
}else return false;
},
remove:function(id){
}
}
return {
/**
* SetForm
*
* Responsavel pela criação do formulário
*
* @return void
*/
setForm: function(){
var form = {
id : 'form',
props : {
method: 'post',
id: 'acme_albumbundle_album',
name: 'acme_albumbundle_album'
},
field : [
{
dojoType: 'TextBox',
props: {
id: 'form_album_id',
name: 'id',
type: 'hidden',
required : false
}
},
{
dojoType: 'ValidationTextBox',
props: {
id: 'form_album_nome',
name: 'nome',
type: 'text',
required : true,
missingMessage: MyFormModule.getMissingMessage()
}
},
{
dojoType: 'Button',
props: {
id: 'form_album_submit',
onClick: function(){ private.put(); },
name: 'submit',
label: 'enviar'
}
}
]
}
MyFormModule.setForm(form);
},
setGrid: function(){
var params = {
target: "/list",
idAttribute: "id",
srcNodeRef: "grid",
structure : [
{name:"Id", field:"id", width: "50px"},
{name:"Nome", field:"nome", width: "200px"}
]
}
MyGridModule.setGrid(params);
}
};
});JCMais
você não intendeu mto bem oque eu precisava... mas dexa pra lá já consegui...
define([
"dojo/dom",
"dojo/domReady",
"dojo/My/MyFormModule",
"dojo/My/MyGridModule",
"dojo/_base/xhr"
], function(dom, domReady, MyFormModule, MyGridModule, Ajax){
var private = {
/**
* private.put
*
* Função irá fazer a validação do formulário e realizar a edição ou criação de um novo album
*
* @return {String/Boolean}
*/
put: function(){
var form = MyFormModule.getForm();
if(form.validate()){
Ajax.post({
form: 'acme_albumbundle_album',
url: '/put/',
load: function(data){
if(data == 'sucess'){
grid = dom.byId('grid');
grid.innerHTML = '';
private.setGrid();
alert(data);
}
},
error: function(){
}
})
}else return false;
},
/**
* remove
*
* Responsavel remoção de um determinado album
*
* @return void
*/
remove:function(id){
},
/**
* SetForm
*
* Responsavel pela criação do formulário
*
* @return void
*/
setForm: function(){
var form = {
id : 'form',
props : {
method: 'post',
id: 'acme_albumbundle_album',
name: 'acme_albumbundle_album'
},
field : [
{
dojoType: 'TextBox',
props: {
id: 'form_album_id',
name: 'id',
type: 'hidden',
required : false
}
},
{
dojoType: 'ValidationTextBox',
props: {
id: 'form_album_nome',
name: 'nome',
type: 'text',
required : true,
missingMessage: MyFormModule.getMissingMessage()
}
},
{
dojoType: 'Button',
props: {
id: 'form_album_submit',
onClick: function(){ private.put(); },
name: 'submit',
label: 'enviar'
}
}
]
}
MyFormModule.setForm(form);
},
/**
* SetGrid
*
* Responsavel pela criação do datagrid
*
* @return void
*/
setGrid: function(){
var params = {
target: "/list",
idAttribute: "id",
srcNodeRef: "grid",
structure : [
{name:"Id", field:"id", width: "50px"},
{name:"Nome", field:"nome", width: "200px"}
]
}
MyGridModule.setGrid(params);
}
}
return {
setForm: private.setForm,
setGrid: private.setGrid
};
});Na realidade, o que você fez é quase igual ao que eu indiquei, porém usando apenas um objeto, private.
//init
//Hello o/
Existem outras formas de se conseguir isso, mas esta é uma delas. :thumbsup: