ExtJS를 확장 클래스는 소스 코드를 수정 CheckColumn 조건부 지원이 기능을 사용하지 드롭 다운 상자를 사용 가능

길고도 짧은 이야기, 특히도 참조하십시오.

요구 사항 :

 

 소스 코드를 수정 CheckColumn.js, 마우스 클릭 변경 이벤트를 추가

 

 

 

 

 

 JS 스크립트 전체를

1 Ext.ns ( ' Ext.ux.grid ' );
2 Ext.ux.grid.CheckColumn = 들을 Ext.extend (Ext.grid.Column {
 3      편집 : 사실 ,
 4      의 processEvent : 함수 (이름, 즉, 그리드 rowIndex에, colIndex) {
 도 5          의 경우 (이름 == ' mousedown ' ) {
 6              prj.curGrid = 그리드;
 7              .init (이름, 즉, 그리드 rowIndex에, colIndex)
 8              VAR의 기록 = grid.store.getAt (rowIndex에)
 (9)               .fireEvent ( ' checkchange ',  , record.data [ .dataIndex]);
10              의 경우 ( .editable) {
 11                  레코드. 세트 (  ! .dataIndex, record.data [ .dataIndex]);
(12)                  돌아  거짓 ;
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 클래스 ="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)  // 거꾸로 compat 시스템. 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.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             함수 {(해상도) : 초점
 35                  디버거;
36                  VAR의 입술 = c_grid.getSelectionModel () getSelections ().;
37                  의 경우 (입술 [ 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