SearchField
Buenas tardes,
he incorporado la búsqueda en mi grid, a partir de un ejemplo que encontré en la red. El caso es que la búsqueda me funciona perfectamente, el problema viene cuando quiero cancelar dicha búsqueda, es decir, volver a mostrar todos los registros (onTrigger1Click) ya que me muestra el grid vacío.
Les dejo mi código a ver alguien puede saber qué puedo estar haciendo mal.
Gracias de antemano!!!
searchfield.js
/*
* Ext JS Library 2.0.2 Copyright(c) 2006-2008, Ext JS, LLC. licensing@extjs.com
*
* http://extjs.com/license
*/
Ext.app.SearchField = Ext.extend(Ext.form.TwinTriggerField, {
initComponent : function() {
Ext.app.SearchField.superclass.initComponent.call(this);
this.on('specialkey', function(f, e) {
if (e.getKey() == e.ENTER) {
this.onTrigger2Click();
}
}, this);
},
validationEvent : false,
validateOnBlur : false,
trigger1Class : 'x-form-clear-trigger',
trigger2Class : 'x-form-search-trigger',
hideTrigger1 : true,
width : 180,
emptyText : 'Introduzca Criterio ...',
hasSearch : false,
paramName : 'query',
onTrigger1Click : function() {
if (this.hasSearch)
{
var o = {
start : 0,
limit : 20
};
this.store.baseParams = this.store.baseParams || {};
this.store.baseParams[this.paramName] = '';
this.store.reload({
params : o
});
this.triggers[0].hide();
this.hasSearch = false;
}
},
onTrigger2Click : function() {
var v = this.getRawValue();
if (v.length < 1) {
this.onTrigger1Click();
return;
}
var o = {
start : 0,
limit : 20
};
this.store.baseParams = this.store.baseParams || {};
this.store.baseParams[this.paramName] = v;
this.store.reload({
params : o
});
this.hasSearch = true;
this.triggers[0].show();
}
});
getContacts1.php
$row["coddelegacion"],
"descdelegacion" => $row["descdelegacion"],
"descsubdelegacion" => $row["descsubdelegacion"],
"domiciliodelegacion" => $row["domiciliodelegacion"],
"poblaciondelegacion" => $row["poblaciondelegacion"],
"provinciadelegacion" => $row["provinciadelegacion"],
"codpostaldelegacion" => $row["codpostaldelegacion"],
"telefonodelegacion" => $row["telefonodelegacion"],
"faxdelegacion" => $row["faxdelegacion"],
"emaildelegacion" => $row["emaildelegacion"]
));
}
echo json_encode(
array(
"success" => true,
"total" => count($data),
"data" => array_splice($data,$start,$limit)
));
crud0.js
..........................................
//Búsqueda
var searchUsers = new Ext.app.SearchField({
store : this.storeGrid,
width: 180,
id: 'fieldUsersSearch'
});
//this.grid.on('afteredit',this.aviso);
var pager = new Ext.PagingToolbar
({
store: this.storeGrid,
displayInfo:true,
displayMsg:"{0} - {1} of {2} Delegaciones",
emptyMsg: "No Hay Datos Que Mostrar",
pageSize:15
}
);
var win = new Ext.Window({
title : "eProject - Gestión Delegaciones",
layout : "fit",
tbar : [
{text:'Añadir Registro', scope:this, handler:this.addContact,iconCls:'save-icon'},
{text:"Eliminar Registro", scope:this, handler:this.onDelete,iconCls:'delete-icon'},
{text:"Exportar", scope:this, handler:this.exportPDF,iconCls:'pdf-icon'},
{text:"Exportar", scope:this, handler:this.exportExcel,iconCls:'excel-icon'},
searchUsers,
'->',
{text:"Ayuda", scope:this, handler:this.ayuda,iconCls:'help-icon'}
],
width : 1000,
height : 435,
x:0,
y:10,
bbar: pager,
items : [this.grid]
});
win.show();
.........................................................
¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.