2016-06-07 5 views
1

Ich versuche Filter in meinem Raster zu implimentieren, aber ich kann es nicht tun. Bitte helfen Sie mir, es zu lösen, da ich Extjs neu bin.Filter werden nicht im Raster angezeigt

ich sencha Geige bin mit dieser laufen und wenn ich versuchte Filter in Raster impement als "Eigenschaften: [Filter]"

dieser auch schauen Sie bitte

Ext.require([ 
'Ext.grid.*', 
'Ext.data.*', 
'Ext.ux.grid.FiltersFeature', 
'Ext.toolbar.Paging']); 

filters = { 
    ftype: 'filters', 
    encode: encode, 
    local: local, 

    filters: [{ 
    type: 'numeric', 
    dataIndex: 'Id' 
}, { 
    type: 'string', 
    dataIndex: 'fname' 
}, { 
    type: 'string', 
    dataIndex: 'lname' 
}, { 
    type: 'date', 
    dataIndex: 'date' 
},{ 
    type: 'numeric', 
    dataIndex: 'age' 
},/*{ 
    type: 'string', 
    dataIndex: 'genderId' 
}*/,{ 
    type: 'string', 
    dataIndex: 'email' 
},{ 
    type: 'numeric', 
    dataIndex: 'phone' 
}] 
}; 

// Gitter

title  : 'Employee table', 
       xtype  : 'grid', 
       stripRows : true, 
       columnLines : true, 
       store  : Ext.data.StoreManager.lookup('employeeStore'), 
       width  :'100%', 
       features : [filters] 


columns: 
       [ 
        { 
        header : 'ID', dataIndex: 'Id', flex:0.5 ,filterable: true, 
        editor: 
        { 
         xtype: 'textfield', 
         allowBlank: false 
        } 
        }, 
        { 
        header : 'First Name', dataIndex: 'fname', flex:1 ,sortable : false,filterable: true, 
        filter: 
        { 
         type: 'string' 
        }, 
        editor: 
        { 
         xtype: 'textfield', 
         allowBlank: false 
        } 
       }, 
        { 
        header : 'Last Name', dataIndex: 'lname', flex:1,filterable: true, 
        editor: 
        { 
         xtype: 'textfield', 
         allowBlank: false 
        } 
        }, 
        { 
        header : 'DOB', dataIndex: 'date', flex:1,filterable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), 
        editor: 
        { 
         xtype: 'textfield', 
         allowBlank: false 
        } 
       }, 
        { 
        header : 'Gender', dataIndex: 'genderId', flex:0.5, 
        editor: 
        { 
         xtype: 'textfield', 
         allowBlank: false 
        } 
        }, 
        { 
        header : 'Age', dataIndex: 'age', flex:0.5,filterable: true, 
        editor: 
        { 
         xtype: 'textfield', 
         allowBlank: false 
        } 
        }, 
        { 
        header : 'Country', dataIndex: 'country', flex:1, 
        editor: 
        { 
         xtype: 'textfield', 
         allowBlank: false 
        } 
        }, 
        { 
        header : 'Email', dataIndex: 'email', flex:2,filterable: true, 
        editor: 
        { 
         xtype: 'textfield', 
         allowBlank: false 
        } 
        }, 
        { 
        header : 'Phone', dataIndex: 'phone', flex:1,filterable: true, 
        editor: 
        { 
         xtype: 'textfield', 
         allowBlank: false 
        } 
        } 
       ], 
+0

Einige Ressourcen es fehlen scheint können Sie App Refresh tun und versuchen Sie es erneut. – UDID

+0

Haben Sie Ext.ux.grid.FiltersFeature überprüft diese Datei existiert oder nicht? Auch welche Ext JS Version verwendest du? –

+0

ja das plugin ist vorhanden und ich benutze 4.2.1 version –

Antwort

0

Wenn Sie extjs 6 Version verwenden, dann ist unten Code für Sie nützlich. Sie müssen dem Raster "gridfilters" ein Plugin geben, um die Filter anzuzeigen.

var grid = Ext.create ('Ext.grid.Panel', { Titel: 'Employee-Tabelle' stripRows: true, columnLines: true, store: Ext.data.StoreManager.lookup (‘ employeeStore '), Breite:' 100%‘, Plugins. [ 'gridfilters'],

 columns: 
      [ 
       { 
       header : 'ID', dataIndex: 'Id', flex:0.5 ,filterable: true, 
       editor: 
       { 
        xtype: 'textfield', 
        allowBlank: false 
       }, 
       filter: 
       { 
        type: 'numeric' 
       } 
       }, 
       { 
       header : 'First Name', dataIndex: 'fname', flex:1 ,sortable : false,filterable: true, 
       filter: 
       { 
        type: 'string' 
       }, 
       editor: 
       { 
        xtype: 'textfield', 
        allowBlank: false 
       } 
      }, 
       { 
       header : 'Last Name', dataIndex: 'lname', flex:1,filterable: true, 
       editor: 
       { 
        xtype: 'textfield', 
        allowBlank: false 
       }, 
      filter: 
       { 
        type: 'string' 
       } 
       }, 
       { 
       header : 'DOB', dataIndex: 'date', flex:1,filterable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), 
       editor: 
       { 
        xtype: 'textfield', 
        allowBlank: false 
       }, 
     filter: 
       { 
        type: 'date' 
       } 

      }, 
       { 
       header : 'Gender', dataIndex: 'genderId', flex:0.5, 
       editor: 
       { 
        xtype: 'textfield', 
        allowBlank: false 
       }, 
     filter: 
       { 
        type: 'string' 
       } 
       }, 
       { 
       header : 'Age', dataIndex: 'age', flex:0.5,filterable: true, 
       editor: 
       { 
        xtype: 'textfield', 
        allowBlank: false 
       }, 
     filter: 
       { 
        type: 'numeric' 
       } 
       }, 
       { 
       header : 'Country', dataIndex: 'country', flex:1, 
       editor: 
       { 
        xtype: 'textfield', 
        allowBlank: false 
       }, 
     filter: 
       { 
        type: 'numeric' 
       } 
       }, 
       { 
       header : 'Email', dataIndex: 'email', flex:2,filterable: true, 
       editor: 
       { 
        xtype: 'textfield', 
        allowBlank: false 
       }, 
     filter: 
       { 
        type: 'string' 
       } 
       }, 
       { 
       header : 'Phone', dataIndex: 'phone', flex:1,filterable: true, 
       editor: 
       { 
        xtype: 'textfield', 
        allowBlank: false 
       }, 
     filter: 
       { 
        type: 'numeric' 
       } 
       } 
      ] 
    }); 

Lauf Beispiel auf Link ist Grid Filters

+0

danke Shrinatha es funktionierte aber ding ist, wenn ich versuchte, meine variable "filter" in features innerhalb grid einfügen es wird nicht funktionieren, können sie mir bitte sagen warum –

+0

Versuchen Sie, den Pfadloader festzulegen. Geben Sie den Pfad des UX-Ordners von Ihrem Projekt zum Loader 'Ext.Loader.setConfig ({enabled: true}); Ext.Loader.setPath ('Ext.ux', '../ ux'); 'Sie können Beispiel verweisen [http://docs.sencha.com/extjs/4.2.4/extjs-build/examples/grid -filterung/grid-filter-local.html]. Geben Sie außerdem Werte für local und encode config als boolesch ein. – Shrinath