Foro

SearchField

0
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.