Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fabyo

DataGrid completo

Recommended Posts

Galera consegui fazer pelo menos o grid aparecer na tela fazendo assim:

 

Ext.onReady(function(){

	var store = new Ext.data.JsonStore({
		url: '/cadsys/json/modfuncao',

		reader: new Ext.data.JsonReader({
				totalProperty: "total",
				root: "dados",  
		   }, [
			   {name: 'Funcao', mapping: 'Funcao'},
			   {name: 'Salario', mapping: 'Salario'}
		   ])
	});

	var grid = new Ext.grid.GridPanel({
		store: store,
		columns: [
			 {header: "Função", width: 200, dataIndex: 'Funcao', sortable: true},
			{header: "Salário", width: 110, dataIndex: 'Salario', sortable: true}
		],
		renderTo:'grid',
		width:310,
		height:250
	});

	store.load();
});

Só falta mostrar os dados..

oque está faltando?

 

o controlador ali /json/modfuncao está assim:

class JsonController extends Zend_Controller_Action
{
	public function indexAction()
	{
		$this->_redirect('/index');
	}
	
	public function modfuncaoAction()
	{
		$tblFuncao = new Funcao();
		$pegaDados = $tblFuncao->fetchAll();
	
		$total = "2"; //simulação de total de resultados
	
		$retorno = array(
					'total'=>$total,
					'dados' => $pegaDados->toArray()
					);
					
		$json = Zend_Json::encode($retorno);
		
		$this->_helper->removeHelper('viewRenderer');
		$this->_helper->layout->disableLayout();
		$this->getResponse()->clearBody();
		$this->getResponse()->setHeader('Content-Type', 'text/x-json');
		$this->getResponse()->setBody($json);				
	}
}

fiz um teste, acessei a url do metodo, ele retorna um download de arquivo (a pagina fica em branco), esse arquivo, eu abri com o notepad e nele consta o resultado json no formato corretinho..

 

Abraço.

 

Att,

 

Leandro Barral []'..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Fabyo,

 

Eu já utilizava seu exemplo na versão ExtJS 1.1 e usava a seguinte chamada para aparecer o grid:

 

<div id="datagrid1"></div>

 

Baixei seu exemplo na versão 2 do ExtJS, consegui colocar do jeito que eu queria, tudo tá funcionando perfeito, só falta eu conseguir colocar o grid onde eu quero. Pois no seu exemplo, o index.html não chama diretamente o grid e queria chamar diretamente para conseguir por o grid no meio da minha página.

 

Há alguma forma de fazer isso como na versão anterior?

 

Obrigado e fico no aguardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu faço validações em campos do datagrid?

Por exemplo no campo de e-mail se nao tiver por exemplo o "@" ele não incluir.

 

Validar cmapo so para numeros ou validar quantidade de caracter etc...

 

gostaria de um exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu faço validações em campos do datagrid?

Por exemplo no campo de e-mail se nao tiver por exemplo o "@" ele não incluir.

 

Validar cmapo so para numeros ou validar quantidade de caracter etc...

 

gostaria de um exemplo.

Eu também estou com a mesmo problema, estou pesquisando pra ver se consigo algum exemplo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

No grid novo, extjs 2.0, eu clico no botão Novo e abre o Form tranquilo, mas se eu fechar esse form e clicar no botão Novo novamente, o form não aparece. Só irá aparecer novamente se eu der um refresh na página.

Alguém já passou por essa bronca?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pesquisem por vtype

 

e sobre o email ele nao só valida o @ ele valida o email completo

 

Bom o que acham do plugin do Jquery "maskdinput"

Estou tentando implementar porém sem sucesso!

na net não encontrei um exemplo de uso no grid apenas no html.

Gostaria de um exemplo de como implementá-lo no grid.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom estou tentado usar o inputTextMask mas até o momento não obtive sucesso.

 

 

{

header: "Número do CPF",

dataIndex: 'cpf',

width: 100,

sortable: true,

tooltip: 'CPF',

editor: new Ext.grid.GridEditor(new Ext.form.TextField(

{

allowBlank: false,

plugins: [new Ext.ux.InputTextMask('999.999.999-99', true)],

 

}

))

},

 

simplesmente não acontece nada, a máscara não é aplicada!

Não consigo entender porque não funciona, aguém tem idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o extjs ja tem uma mascara muito boa, e nao precisa usar jquery com extjs

só que quiser mesmo

Boa Tarde Fabyo, gostaria de saber se é possível colocar combo box, nos campos do data grid, estou pensando em fazer um pequeno relatório aonde o usuário modifique direto no grid, tem como o extj?

 

 

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

claro que sim, da pra fazer muita coisa com extjs

 

um exemplo do que você ta querendo:

 

http://extjs.com/deploy/dev/examples/grid/edit-grid.html

 

é justamente isso que eu to procurando, pena que não dá pra baixar o exemplo do site oficial, queria dar uma estudada como é feito...

 

Tem como disponibilizar no fórum,

 

Agradeço desde já...

 

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao tem segredo

 

quando você cria um campo você só define o que ele é e dai ele vai ser aquilo que você definiu

 

exemplo:

 

editor: new Ext.form.TextField

isso ira criar um campo text quando você editar

 

editor: new Ext.form.ComboBox

isso ira criar um campo combobox quando você editar

 

a unica diferença é que o combobox tem mais opções, mas seguindo os exemplos da pra você montar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao tem segredo

 

quando você cria um campo você só define o que ele é e dai ele vai ser aquilo que você definiu

 

exemplo:

 

editor: new Ext.form.TextField

isso ira criar um campo text quando você editar

 

editor: new Ext.form.ComboBox

isso ira criar um campo combobox quando você editar

 

a unica diferença é que o combobox tem mais opções, mas seguindo os exemplos da pra você montar

Valew Fabyo, só preciso ver aki como vou colocar os valores na COMBO para o usuario selecionar, estou fazendo um pequeno controle de presença, ai o usuário vai escolher se ele veio ou nao OK ou FA,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo desculpa a minha ignorância, mas estou tentando colocar mais campos na tabela e mostrar com o EXTJS, porém como não tenho muita experiencia, gostaria de saber aonde eu tenho que declarar um novo campo no index.js, e se eu preciso declarar em algum outro local...

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que declarar em 2 lugares

 

ds = new Ext.data.Store({

proxy: new Ext.data.ScriptTagProxy({

url:'listar_usuarios.php'

}),

reader: new Ext.data.JsonReader({

root: 'resultado',

id: 'id_usuario'

},

[

{name: 'nome', mapping: 'nome', type: 'string'},

{name: 'email', mapping: 'email', type: 'string'},

{name: 'data_cadastro', mapping: 'data_cadastro', type:'date', dateFormat:'Y-m-d'},

{name: 'news', mapping: 'news', type:'boolean'}

]

)

});

 

nessa parte que você declara o nome do campo que é o mesmo que tem no banco de dados

 

e dentro do "cm" você declara o campo que ira aparecer no grid, ja passando o nome do campo que você declarou acima

 

var cm = new Ext.grid.ColumnModel(

[

 

{

header: "Nome",

dataIndex: 'nome',

width: 220,

sortable: true,

editor: new Ext.grid.GridEditor(new Ext.form.TextField(

{

allowBlank: false

}

))

}

 

esse bloco todo em vermelho é a configuração da coluna do grid onde:

 

header: é o nome que aparece no grid

dataIndex: é o nome que esta no banco de dados o mesmo que você configurou acima

width: tamanho da coluna

sortable: se o campo vai poder ter a opção de ordenar

editor: e o editor você define que tipo de edição vai ter, se nao quiser que o campo seja editavel entao nao coloque essa linha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valew Fabyo voce tá me ajudando e muito, gostaria de saber de uma coisa... por exemplo, com o EXTJS tem como fazer formatação condicional? Quando o usuario colocar um valor especifico no campo Cargo por exemplo, se ele selecionar GERENTE apareça na cor vermelha...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.