ExtJS4系での参考リンクのメモ。
日本代理店&Sencha本社から認定されたトレーニングを展開中の株式会社ゼノフィ様の技術Blogより、ExtJS4のクラスやMVCアーキテクチャについての解説
- Ext.defineを利用したクラス生成:メンバ定義を後から行う – Ext JS 4 - code:x
- Mixinを利用した多重継承クラスの作成とエイリアス – Ext JS 4 - code:x
- Ext.isクラスを利用した判定 - code:x
- Ext JS 4.0/4.1 MVCアプリケーション構造の理解 – 株式会社ゼノフィ社内勉強会資料 - code:x
- Ext JS 4.0/4.1 MVCアプリケーション構造の理解II – 株式会社ゼノフィ社内勉強会資料 - code:x
Gridのセル内で長い文字列を折り返す話題
- How to display a super-long field in an ExtJS GridPanel - Stack Overflow
- css・white-space・折り返し・luckytime
- Exception With Butterfly Wings: Ext JS 4: How to wrap text in grid headers or cells
- How to enable word-wrap in Grid cells?
- How can provide word wrap feature for the content inside a grid cell?
- long text in grid cell
- ExtJs 4 - How to wrap a column header text to fit in the column width?
- extjs grid column text wrap around/auto expand
- ExtJsのグリッドで、セルのwhite-spaceをnormalにする方法 - konisimple log
- extjs - Word-wrap grid cells in Ext JS - Stack Overflow
GridのRowの背景色を、データの内容に応じて変更したい
- Ext JS-GridのRowに色をつける | サラリーマンのすらすらIT日記
- Grid row color with getRowClass is not working
- Cannot apply getRowClass in GridPanel in extjs4
- css - changing background colors of grid rows dynamically in extjs 4.2.2 - Stack Overflow
注意:4.1 まではgetRowClass()で返すCSSクラス名単体でCSSで指定すればよかった。
.x-mygrid-true { background-color: green !important; }
→ 4.2 になると .x-grid-cell をあわせる必要があるようだ。
.x-mygrid-true .x-grid-cell {
background-color: green !important;
}
Gridで、通常のRowの背景色だけでなく、mouse hoverやクリック時も変更したい
- css - ExtJs Grid row hover color and high - Stack Overflow
自力で解析した結果:(x-mygrid-true/falseは、booleanカラムに応じてRowのtrのCSSで切り替えているクラス名)
.x-mygrid-true.x-grid-row-over .x-grid-cell {
background-color: red !important;
}
.x-mygrid-true.x-grid-row-focused .x-grid-cell {
background-color: green !important;
}
.x-mygrid-true .x-grid-cell {
background-color: yellow !important;
}
.x-mygrid-false.x-grid-row-over .x-grid-cell {
background-color: gray !important;
}
.x-mygrid-false.x-grid-row-focused .x-grid-cell {
background-color: dimgray !important;
}
.x-mygrid-false .x-grid-cell {
background-color: black !important;
}
ちょっとクセがあって、
.x-mygrid-false
.x-grid-row-focused
はtrタグのclassに同時に設定され、".x-grid-cell"はその中のtdタグのclassに設定される。
.x-mygrid-false .x-grid-row-focused .x-grid-cell {
だと駄目で、同時、というのを上手く指定するには空白分割ではなく、連結する必要があった。
.x-mygrid-false.x-grid-row-focused .x-grid-cell {
Gridのactioncolumnで、行のデータによってアイコン表示/非表示を切り替えたい
- The extjs4 xtype ‘actioncolumn’ in a nutshell | | Learn Some ThingsLearn Some Things
- extjs4 - How to hide action column in extjs 4 - Stack Overflow
- Hide icon in action column for particular row
getClass()のカスタマイズで実現できる。条件分岐で表示する方にする場合は、通常ならばiconClsで設定するクラス名を返す必要がある。表示しない場合だけ
"x-hide-display"して、表示する場合は何もしてないと、結局何も表示されずに終わる。
例:本来はiconClsで設定するアイコン表示用クラス名を、valueがtrueの場合にgetClass()で返している。
{text: 'warn', xtype: 'actioncolumn', dataIndex: 'booleanField', items: [{
getClass: function(value, metaData, record) {
if (value) {
return 'fam3-16px-database_delete';
} else {
return 'x-hide-display';
}
}
}]},
Gridのネストしたカラムの、ヘッダーだけを消したい。つまるところ、tableの<th>タグのcolspan相当を実現したい
.hide-sub-headers .x-group-sub-header {
display: none;
}
ただし、これをすると、groupしたヘッダ自体ではfilterやソートが使えなくなるので、「カラム4, 5, 6 をまとめる、ただしソート&フィルタはカラム5の値を使う」ような器用な機能まではそのままでは実現できない。
Gridのヘッダーにアイコンを表示したい
- Adding icon in grid column's header
イベントの伝播(propagation)を切りたい。デフォルトのイベントハンドラを無効化したい。
- extjs 4 event handling tutorials - Stack Overflow
- Stop event propagation does'nt work
- Stopping Event Propagation
- Stop Event propagation ?
プレーンテキスト形式でダウンロード