ext-grid FAQ:Grid
gridのよくある質問:
1,gridデータが空である.2、gridは画像3を正しく表示できず、正しくソートできない4、TabPanelsはgrid 5、gridセルのlink 6、マージフィールド7、カスタムrowまたはcolumnの外観、動作8、grid cellはclickイベント9を追加し、storeがloadを呼び出した後、Storeはまだ空10で、gridサイズはwindowに従って11変化し、gridセル(実際には:store)12を更新し、異なるurlからgrid 13、xml問題14を再ロードし、それが空であるべきである場合、gridはレコード15を保持し、json Readerのデバッグ16、ドラッグ、またはレコード17を再ロードし、水平スクロールバー18、固定または非固定列幅19、ある列20を非表示にし、grid列固定幅パッケージセルの内容21、列22を追加し、toolbarの要素23、選択行24を削除し、ページ別、総記録数25、grid行インデックス(row index)によりrecord 26を取得し、gridは異なるserverまたはstoreから、データ27をロードし、列自動サイズ28、ある行29、contentEl、applyToとrenderToの違い30、エラーデータ、red flagは31、Editor grid-ComboBoxは32、表示枠33、grid右側のスクロールバー34を削除し、gridはfooter 35を使用し、gridコピーセル内容36,grid中のcomboBoxes 37,gridカスタムスタイル
具体的な解決策は次のとおりです.
1.gridが空 gridデータを表示しない Storeデータをロードしない gridは空 gridは を実行しない. gridはstore を傍受していない
問題が引き起こす可能性のある原因
(1).gridの高さ、height、autoHeight、またはlayout:'fit'のコンテナの1つを定義するかどうか
(2).storeをロードしますか?呼び出し方法load()
(3). render gridかどうか、Render a gridは次のいずれかを使用します. grid構成でrenderToまたはel自動render を使用する.に表示される呼び出しrender()メソッド、grid.render()
(4). renderの要素が存在するかどうか.
(5). 1つのgridを1つのtab panelに入れる場合は、tabPanelの構成にlayoutOnTabChange:trueを追加してみます.
(6). JSONを使うと、 JSONのフォーマットが正しいかどうか(www.jslint.comでJSON応答を検証できます) stringではないことを確認します(JSON=object) フィールド名にピリオド(.)を使用しないでください.(「filed.c」extは翻訳されません) JSONの構造とrenderの一致を確保する(記録配列がルートノードの下にあるなど) (7).The renderが正しいrootを正しく指定しているか、JSONでこのrootを使用しているか次のJSOnReaderからの応答例を確認します.JSON応答の配列をパッケージするrootを設定すると、次のようになります. (8). レコードされたデータが配列の1つであることを確認します.
firebugを使用して次の操作を試みます.
(I)firebugにエラー表示がないか
(II)要求が発行されたか否か(consoleの表示)
(III)この要求に応答があるかどうか、もしそうであれば、結果をwww.jslintにコピーする.comでフォーマットを検証し、その応答があなたの望む結果かどうかを確認し、総記録数、配列のルートディレクトリなどをチェックします.
store load?リスナーの追加storeがロードされているか異常があるかどうかを監視します(リスナーの追加方法?)
Store 'datachanged', 'load', 'loadexception',
Proxy 'load'/'loadexception'
ajaxリスナーを追加することもできます
2.gridが正常に画像を表示できない(checkboxes、など)
(1)Cssファイル接続が正しいか
(2)、css参照が正しいかどうか、相対経路をチェックする.
3.並べ替えの問題
(1). store構成(sortInfoおよびsort type)を確認するか、setDefaultSort()を使用します.
(2). sort typeが設定されているかどうかを確認します
(3). 現在のページのみを並べ替える場合、DBクエリー全体を並べ替えるremoteSortは、true(remoteSortのデフォルトはローカル)に設定する必要があります.
(4). 列のソート
列データ
レコード定義
4.Tab Panelsのgrid
(1).他のパネルのように、GridPaneをitemとして直接追加することができます.
(2).GridパネルがTabパネルであることを確認
(3).タブパネルでlayoutOnTabChangeを設定する
(4).例:http://examples.extjs.eu/?ex=gridintab
5.gridセルのリンク
(1). rendererをカスタマイズするか、
(2). Ext.gridを使用します.RowSelectionModelのrowselectイベントは、次のとおりです.
6.連結フィールドが1列である
(1). 接続レコードの2つのフィールド(または複数)
(2). 必要なフィールドを作成できます.
--続き
変換元(http://www.extjs.com/forum/showthread.php?t=27784)
1,gridデータが空である.2、gridは画像3を正しく表示できず、正しくソートできない4、TabPanelsはgrid 5、gridセルのlink 6、マージフィールド7、カスタムrowまたはcolumnの外観、動作8、grid cellはclickイベント9を追加し、storeがloadを呼び出した後、Storeはまだ空10で、gridサイズはwindowに従って11変化し、gridセル(実際には:store)12を更新し、異なるurlからgrid 13、xml問題14を再ロードし、それが空であるべきである場合、gridはレコード15を保持し、json Readerのデバッグ16、ドラッグ、またはレコード17を再ロードし、水平スクロールバー18、固定または非固定列幅19、ある列20を非表示にし、grid列固定幅パッケージセルの内容21、列22を追加し、toolbarの要素23、選択行24を削除し、ページ別、総記録数25、grid行インデックス(row index)によりrecord 26を取得し、gridは異なるserverまたはstoreから、データ27をロードし、列自動サイズ28、ある行29、contentEl、applyToとrenderToの違い30、エラーデータ、red flagは31、Editor grid-ComboBoxは32、表示枠33、grid右側のスクロールバー34を削除し、gridはfooter 35を使用し、gridコピーセル内容36,grid中のcomboBoxes 37,gridカスタムスタイル
具体的な解決策は次のとおりです.
1.gridが空
問題が引き起こす可能性のある原因
(1).gridの高さ、height、autoHeight、またはlayout:'fit'のコンテナの1つを定義するかどうか
grid = new Ext.grid.EditorGridPanel{(
// configs
// height
// ,(1) height,(2) autoHeight(3) grid :fit
//autoHeight: true // autoHeight
// -- --
//height: 350
)}
(2).storeをロードしますか?呼び出し方法load()
(3). render gridかどうか、Render a gridは次のいずれかを使用します.
(4). renderの要素が存在するかどうか.
(5). 1つのgridを1つのtab panelに入れる場合は、tabPanelの構成にlayoutOnTabChange:trueを追加してみます.
(6). JSONを使うと、
{ 'results': 2, 'rows': [{"CodigoProduto":"3009","TipoProduto":"FERT",
"DescricaoProduto":"7 UP Reg. 12 GR 1,50 PET",
"UnidadeMedidaProduto":"TAB","Sabor":"V-REGULAR",
"CodigoMarca":"35","ProdutoPesoBruto":"19.448",
"ProdutoPesoLiquido":"18.760","ProdutoPesoUM":"KG",
"ProdutoVolume":"18.000","ProdutoVolumeUM":"L",
"ProdutoUM_PAL":"36","Eliminar":""}]
}
var SecurityItemRecord = Ext.data.Record.create([{name: 'type'}, {name: 'itemName'}]);//OK
var SecurityItemRecord = Ext.data.Record.create({name: 'type'}, {name: 'itemName'});//NO GOOD
firebugを使用して次の操作を試みます.
(I)firebugにエラー表示がないか
(II)要求が発行されたか否か(consoleの表示)
(III)この要求に応答があるかどうか、もしそうであれば、結果をwww.jslintにコピーする.comでフォーマットを検証し、その応答があなたの望む結果かどうかを確認し、総記録数、配列のルートディレクトリなどをチェックします.
store load?リスナーの追加storeがロードされているか異常があるかどうかを監視します(リスナーの追加方法?)
Store 'datachanged', 'load', 'loadexception',
Proxy 'load'/'loadexception'
ajaxリスナーを追加することもできます
2.gridが正常に画像を表示できない(checkboxes、など)
(1)Cssファイル接続が正しいか
(2)、css参照が正しいかどうか、相対経路をチェックする.
3.並べ替えの問題
(1). store構成(sortInfoおよびsort type)を確認するか、setDefaultSort()を使用します.
sortInfo:{field: 'fieldname', direction: 'ASC'}
// :
store.setDefaultSort('fieldname', 'ASC');
(2). sort typeが設定されているかどうかを確認します
(3). 現在のページのみを並べ替える場合、DBクエリー全体を並べ替えるremoteSortは、true(remoteSortのデフォルトはローカル)に設定する必要があります.
(4). 列のソート
列データ
//
+-+-------+
|1|First |
|2|Last |
|3|Second|
+-+-------+
//
+-+-------+
|1|First |
|3|Second|
|2|Last |
レコード定義
sortType: function(value)
{
switch (value.toLowerCase())
{
case 'first': return 1;
case 'second': return 2;
default: return 3;
}
}
4.Tab Panelsのgrid
(1).他のパネルのように、GridPaneをitemとして直接追加することができます.
(2).GridパネルがTabパネルであることを確認
(3).タブパネルでlayoutOnTabChangeを設定する
//grid
var g = new Ext.grid.GridPanel(
title: 'I will be the tab label';
)
var tabs2 = new Ext.TabPanel({
renderTo: document.body,
activeTab: 0,
widht: '100%'
height: 150,
frame: true,
defaults:{autoScroll: true},
items: [0] //grid
})
(4).例:http://examples.extjs.eu/?ex=gridintab
5.gridセルのリンク
(1). rendererをカスタマイズするか、
(2). Ext.gridを使用します.RowSelectionModelのrowselectイベントは、次のとおりです.
function handleRowSelect(selectionModel, rowIndex, selectedRecord){
// url
var url = selectedRecord.get('url');
//
window.open(url);
}
grid.getSelectionModel().on('rowselect',handleRowSelect);
6.連結フィールドが1列である
(1). 接続レコードの2つのフィールド(または複数)
var reader = new Ext.data.ArrayReader({},[
//
{name:'full_name',type:'string',mapping:'first_name+ " " + obj.last_name'},
{name: 'age'}
]);
var grid = new Ext.grid.GridPanel({
store: new Ext.data.Store({
render: reader,
data: Ext.grid.dummyData
}),
columns:[
{header: 'Full Name',dataIndex: 'full_name'},
{header: 'Age',dataIndex:'age'}
]
})
(2). 必要なフィールドを作成できます.
--続き
変換元(http://www.extjs.com/forum/showthread.php?t=27784)