Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    ListGrid Filtering and grouping ( filtering not working )

    smartgwtee-2.3
    FireFox 3.5.9 ( linux )

    No server side.
    Client side no javascript errors or warnings

    I hope you cant understand me with my poor English.
    I have a GRID and the application fetch the data from my mysql DB.
    The problem is that when i setGroupByField the filtering stop working but if i disable it, the filtering works again.
    Is it possible to Group and filter in a list grid?
    wich is my error?

    The code is a little messy but i'ts understandable "i I think"

    greetings


    Code:
    package com.smartgwt.sample.client;
    
    
    
    import com.smartgwt.client.data.Criteria;
    import com.smartgwt.client.data.Record;
    import com.smartgwt.client.data.RestDataSource;
    import com.smartgwt.client.data.fields.DataSourceDateField;
    import com.smartgwt.client.data.fields.DataSourceTextField;
    import com.smartgwt.client.types.DSDataFormat;
    import com.smartgwt.client.widgets.form.SearchForm;
    import com.smartgwt.client.widgets.form.fields.ButtonItem;
    import com.smartgwt.client.widgets.form.fields.CheckboxItem;
    import com.smartgwt.client.widgets.form.fields.HeaderItem;
    import com.smartgwt.client.widgets.form.fields.TextItem;
    import com.smartgwt.client.widgets.grid.ListGrid;
    import com.smartgwt.client.widgets.grid.ListGridField;
    import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
    import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
    import com.smartgwt.client.widgets.layout.VStack;
    import com.smartgwt.client.widgets.tab.Tab;
    import com.smartgwt.client.widgets.tab.TabSet;
    import com.smartgwt.client.widgets.viewer.DetailViewer;
    
    public class ConsulPer  {
    	
    	public static VStack vstack;
    	private ButtonItem findItem;
    	final SearchForm searchForm = new SearchForm();
    	final ListGrid listGrid = new ListGrid();
    	
    	public static ConsulPer instance = null;
    	
    	
    	public static VStack getInstance() {
    		if ( instance == null ){
    			instance = new ConsulPer();
    		}
    		return vstack;
    		
    	}
    
    		
    	public ConsulPer(){
    		
    		
    		// Creo los layouts para el formulario
    		// y los botones del formulario
    		// 
    		
    		vstack = new VStack();
    	    vstack.setMembersMargin(5);
    	    final DetailViewer itemViewer = new DetailViewer();  
    	    
    	      
    	    //
    	    // creo el datasource del formulario
    	    //
    	    
    	    RestDataSource dataSource = new RestDataSource();
    	    dataSource.setDataFormat(DSDataFormat.JSON);
    	    dataSource.setDataURL("http://nuovamed.com/getAfil.php");
    	    
    	    DataSourceTextField dni = new DataSourceTextField("dni", "DNI", 50, true);
    	    dni.setPrimaryKey(true);
            DataSourceTextField nombre = new DataSourceTextField("nombre", "NOMBRE", 50, true);
            DataSourceTextField domicilio = new DataSourceTextField("domicilio", "DOMICILIO", 100, false);
            DataSourceTextField telefono = new DataSourceTextField("telefono", "TELEFONO");
            DataSourceDateField fnac = new DataSourceDateField("fnac", "F.NACIMIENTO", 100, true);
            DataSourceTextField dnititular = new DataSourceTextField("dnit", "DNI Titular", 50, true);
            DataSourceTextField nafilfield = new DataSourceTextField("nafil", "Nš AFIL", 50, false);
            DataSourceTextField empresafield = new DataSourceTextField("empresa", "EMPRESA", 50, true);
            
            dataSource.setFields(dni, nombre, domicilio, fnac, telefono, dnititular, nafilfield, empresafield);
            
            //
            //creo el formulario searchForm
            //
    	    
    	    
    	    vstack.addMember(searchForm);
    	    //tabLabel.addChild(searchForm);
    	    searchForm.setWidth100();
    	    searchForm.setTop(5);
            searchForm.setBackgroundColor("#EEFFFF");
            searchForm.setGroupTitle("Busqueda");
            searchForm.setIsGroup(true);  
            searchForm.setCellPadding(15);
            searchForm.setNumCols(7); 
            searchForm.setDataSource(dataSource);
            searchForm.setUseAllDataSourceFields(false);
            
            TextItem searchFormField = new TextItem("dni");
            searchFormField.setWidth(200);
            
            TextItem searchFormAfil = new TextItem("nafil");
            searchFormAfil.setWidth(200);
            
            CheckboxItem findInCategory = new CheckboxItem("findInCategory");  
            findInCategory.setTitle("Titulares");  
            findInCategory.setDefaultValue(true);  
            findInCategory.setShouldSaveValue(false);  
            
            HeaderItem header = new HeaderItem();
            header.setDefaultValue("Busqueda de afiliados");
    	    
            findItem = new ButtonItem("Buscar"); 
            findItem.setWidth(70);  
            findItem.setEndRow(false);
            findItem.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler() {  
                public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent event) {  
                    findItems(null);  
                }  
            });
           
    	    
                    
            searchForm.setItems(findItem, searchFormField, searchFormAfil, findInCategory);
            
            //
            // Creo el ItemListGrid
            //
            
            listGrid.setWidth100();  
            listGrid.setHeight(250);
            listGrid.setGroupByField("empresa");
            listGrid.setDataSource(dataSource);
            listGrid.setCanEdit(true);
            listGrid.setAutoFetchData(true);
            listGrid.addRecordClickHandler(new RecordClickHandler() {  
                public void onRecordClick(RecordClickEvent event) {  
                	Record selectedRecord  = listGrid.getSelectedRecord(); 
                	itemViewer.setData(new Record[]{selectedRecord}); 
                }  
            });  
            vstack.addMember(listGrid);
            ListGridField dniGrid = new ListGridField("dni", "DNI"); 
            ListGridField dnitGrid = new ListGridField("dnit", "DNI Titular");
            ListGridField nafilGrid = new ListGridField("nafil", "Nš AFIL");
            ListGridField nombreGrid = new ListGridField("nombre", "Nombre");
            ListGridField domGrid = new ListGridField("domicilio", "Domicilio");
            ListGridField telGrid = new ListGridField("telefono", "Telefono");
            ListGridField fnacGrid = new ListGridField("fnac", "F.Nacimiento");
            ListGridField empresaGrid = new ListGridField("empresa", "Empresa");
            
            listGrid.setFields(dniGrid, dnitGrid, nafilGrid, nombreGrid, domGrid, telGrid, fnacGrid, empresaGrid);
            
            TabSet tabDetail = new TabSet();
            
              
            itemViewer.setDataSource(dataSource); 
            itemViewer.setWidth100();  
            itemViewer.setMargin(0);  
            itemViewer.setEmptyMessage("Elegir un registro para ver");  
            
            Tab viewTab = new Tab("View");  
            viewTab.setWidth(70);  
            viewTab.setPane(itemViewer);  
      
            Tab editTab = new Tab("Edit");  
            editTab.setWidth(70);  
            //editTab.setPane(editorForm);  
            
            tabDetail.setTabs(viewTab, editTab);  
            tabDetail.setHeight(200);
            
            vstack.addMember(tabDetail);
            
            
            
            
            
            
    	    
    	}
    	
    	public void findItems(String categoryName) {  
    		  
            Criteria findValues;  
            findValues = searchForm.getValuesAsCriteria();
            listGrid.filterData(findValues);
            
              
        }  
    		
    		
    
    	
    	
    
    }
Working...
X