2012-01-24 5 views
0

私はExtJSの初心者で、ExTJSグリッドにフィルタを含めるようにしていますが、 "feature.filters"というファイルの読み込みに失敗したようなエラーが表示されています。以下は、グリッドを作成するための私の関数です。私は別のHTMLページからこの関数を呼び出しています。ExtJS Filters機能のエラー

function ExtJSGrid(tableId,headerInfo,data){ 

Ext.Loader.setConfig({enabled: true}); 
Ext.Loader.setPath('Ext.ux', 'http://vmxplambardi:19086/teamworks/script/extjs/examples/ux'); 
Ext.require([ 
    'Ext.grid.*', 
    'Ext.data.*', 
    'Ext.ux.grid.FiltersFeature', 
    'Ext.toolbar.Paging' 
]); 


var tableId=tableId+"-div"; 
var fields=[],columns=[],dataIndex='cell'; 
var filters = { 
     ftype: 'filters', 
     local:true, 
     filters: [{ 
      type: 'string', 
      dataIndex: 'cell1' 
     }, { 
      type: 'string', 
      dataIndex: 'cell2' 
     }, { 
      type: 'string', 
      dataIndex: 'cell3' 
     }] 
    }; 

document.getElementById(tableId).innerHTML=''; 
for(var i=1;i<=headerInfo.length;i++) 
{ 

var cellObj={},columnObj={}; 

cellObj.name=dataIndex+i; 

fields.push(cellObj); 

columnObj.text=headerInfo[i-1]; 

columnObj.dataIndex=dataIndex+i; 

columns.push(columnObj); 
} 

var store = Ext.create('Ext.data.ArrayStore', { 

     fields:fields, 

     data: data 

    }); 

var grid = Ext.create('Ext.grid.Panel', { 

     store: store, 
     columns:columns, 
    width:'100%', 
    forceFit:true, 
    features: [filters], 
     renderTo: tableId 

     }); 
} 

何か不足している場合は教えてください。

答えて

0

Javascriptにはブロックレベルのスコープがないため、forループで定義された変数は実際には関数の最上部で定義され(ループ)、ループから生き残ります。だからあなたはいつもヴァルスを上書きします。

0

私はこのように働くそれを持っている:

var filters = { 
    ftype: 'filters', 
    // encode and local configuration options defined previously for easier reuse 
    encode: false, // json encode the filter query 
    local: true, // defaults to false (remote filtering) 

    // Filters are most naturally placed in the column definition, but can also be 
    // added here. 
    filters: [ 
     { 
      type: 'boolean', 
      dataIndex: 'visible' //Just an example 
     } 
    ] 
}; 

var myFilterGrid = new Ext.create('Ext.ux.LiveSearchGridPanel', { 
    title: 'someTitle', 
    selType: 'cellmodel', 
    store: myStore, 
    columns:[ 
     { 
      header: "Column1", 
      width: 90, 
      sortable: true, 
      dataIndex: 'INDEX1', 
      filterable: true, //<--- 
      filter:{   //<--- 
       type:'string' 
      } 
     }, 
     .... 
     { 
      header: "Another Column", 
      width: 85, 
      sortable: true, 
      dataIndex: 'INDEX2' 
     }], 
    features: [filters] //<--- 
    }); 

そして

'Ext.ux.grid.FiltersFeature' 

・ホープこのことができますを含めるようにしてください!