ExtJSの拡張クラスは、ソースコードを変更CheckColumn、条件付きのサポートは、機能を無効にするには、ドロップダウンボックスを有効に

かいつまんで、特に図参照。

要件として:

 

 ソースコードを変更CheckColumn.js、マウスクリックの変更イベントを追加

 

 

 

 

 

 JSスクリプトの完全な

1 Ext.ns(' Ext.ux.grid ' )。
2 Ext.ux.grid.CheckColumn = Ext.extend(Ext.grid.Column、{
 3      編集可能:4      のprocessEvent:関数(名前、E、グリッド、rowIndexに、colIndex){
 5          であれば(名前== ' マウスダウン' ){
 6              prj.curGrid = グリッド;
 7              この.INIT(名前、E、グリッド、rowIndexに、colIndex);
 8              VARのレコード= grid.store.getAt(rowIndexプロパティ);
 9              この .fireEvent(' checkchange 'この、record.data [ この.dataIndex])。
10              であればこの.editable){
 11                  レコード。セットこの .dataIndex、record.data [!この.dataIndex]);
12                  リターン はfalse ;
13              } {
 14                  リターン Ext.grid.ActionColumn.superclass.processEvent.apply(この引数)。
15              }
 16          } {
 17              リターンExt.grid.ActionColumn.superclass.processEvent.apply(この、引数);
18          }
 19      }、
 20      レンダラ:機能(V、P、レコード){
 21          p.css + = ' とx-GRID3チェック-COL-TD ' ;
22          リターン String.Formatの(' <DIV CLASS = "X-GRID3チェック-COL {0}">&#160; </ div> '、V?' -on ''' )。
23      }、
 24      INIT:Ext.emptyFn、
 25      setEditable:関数(F){
 26          この .editable = F。
27      }
 28  });
29  
30  // p型を登録します。廃止。4.0で削除
31 Ext.preg(' checkcolumn ' 、Ext.ux.grid.CheckColumn)。
32  
33  //は後方互換モードの。4.0で削除
34 Ext.grid.CheckColumn = Ext.ux.grid.CheckColumn。
35  
36  // 列XTYPEレジスタ
37 Ext.grid.Column.types.checkcolumn = Ext.ux.grid.CheckColumn。
CheckColumn.js
1              {
 2                  ヘッダ:" 证书"、dataIndex:" MAT_CERTIFICATE "、ID:' MAT_CERTIFICATE '、幅:90、整列:' 中央'、XTYPE:" checkcolumn " 、リスナー:{
 3                      checkchange:機能(カラム、チェック){
 4                          もしチェック){
 5                              certificateTypeCombo.disable()。
6                          }{
 7                              certificateTypeCombo.enable()。
8                          }
 9                      }
 10                  }
 11              }
 12              {ヘッダ:" 证书类型"、dataIndex:" MAT_CERTIFICATE_TYPE "、幅:120、整列:' 中央' 、編集者:certificateTypeCombo、レンダラ:LCE_TYPE.toValue}
 13 ----- -------------------------------------------------- -----
 14      のvar LCE_TYPE = 新しいですExt.data.RSStore({
 15          URL:" STL001.csxタグ= GetLceType?" 16の          フィールド:[ " MSID_N "" MSVALUE " ]、
 17          ルート:" データ" 18          ID:" MSID_N " 19          AUTOLOAD。20          toValueの:機能(V){
 21              VARの REC = LCE_TYPE.getById(V);
 22              戻り REC?rec.data.MSVALUE:V。
23          }
 24      });
25  
26      のvar certificateTypeCombo = 新しいExt.form.SComboBox({
 27          店舗:LCE_TYPE、
 28          displayField:' MSVALUE ' 29          valueField:' MSID_N ' 30          モード:' ローカル' 31          無効:32          triggerAction:' 全て' 33人の         リスナー:{
 34             焦点:機能(RES){
 35                  デバッガ。
36の                 VaRの RES = c_grid.getSelectionModel()getSelections()。
37                  であれば(RES [ 0 ] .data.MAT_CERTIFICATE == ){
 38                      certificateTypeCombo.disable()
 39                  }
 40                  {
 41                      certificateTypeCombo.enable()。
42                  }
 43              }
 44          }
 45      });
query.js

 

おすすめ

転載: www.cnblogs.com/chenyanbin/p/11762767.html