EXT関連
Ext.namespace('xxxx.common'); ・・・ 以降、この名前空間のソースを記載 // 同じファイルに、異なる名前空間を設定することも可能 Ext.namespace('xxxx.function); ・・・ 以降、この名前空間のソースを記載
Ext.getDom('user_id').value = 入力した値
Ext.get('user_button_name').on('click', execEventName);
遷移先オブジェクト名.load({ params : { 'パラメータ名1' : 'パラメータ値1', 'パラメータ名2' : 'パラメータ値2' } });
new Ext.tree.TreeSorter(xxxx.orgTreePanel, {folderSort:true}); // TreePanel利用の流れ // 各プロパティーの説明 xxxx.orgTreePanelLoader = new xxxx.OrgTreeLoader({ baseAttrs : { // 毎回利用する属性の設定 singleClickExpand : true }, requestMethod : 'POST', dataUrl : xxxxxx, // JSONデータ取得URL baseParams: { // 毎回必ず送信するパラメータ設定 paramName1 : paramData1, paramName2 : paramData2 }, preloadChildren : true // 初期処理時に、ノード展開処理を行うかのフラグ // ノード展開イベントが発生するので、イベントのシーケンスに注意が必要です。 }); xxxx.orgTreePanelRoot = new Ext.tree.TreeNode({ id : '', // 空白でも可能 text : 'title', icon : 'xxxx.png', disabled : true, expanded : false, // ルートノードを展開状態にするかのフラグ draggable : false }); xxxx.orgTreePanel = new xxxx.OrgTreePanel({ title : 'treeTitle', id : 'orgTreePanel', collapsed : true, // trueの場合、パネルを折りたたむレンダリングの指定がされます。(初期値:false) ddGroup : 'orgDD', // 同一のグループIDに対してD&Dを許可 enableDD : true, root : xxxx.orgTreePanelRoot, loader : xxxx.orgTreePanelLoader, rootVisible : true, // ルートノードを表示するかのフラグ layout : 'fit', // レイアウト関連 });
xxxx.common.OrgTreePanel = function(cfg){ Ext.applyIf(this,cfg); xxxx.common.OrgTreePanel.superclass.constructor.call(this, cfg); }; Ext.extend(xxxx.common.OrgTreePanel, Ext.tree.TreePanel, { initComponent: function(cfg) { xxxx.common.OrgTreePanel.superclass.initComponent.call(this, cfg); }, autoheight : true, autoScroll : true, animate : true, containerScroll : true, border : false, dragOverData : null, orgValue : false, ←クラス独自の変数を定義 orgMethod : function(nodeId) { ←拡張したいメソッドを追加 } }; // Storeの拡張例 xxxx.OrgStore = function( cfg ){ // コンフィグ適用 Ext.applyIf(this,{ proxy : cfg.proxy, url : cfg.url, root : cfg.root, reader : cfg.reader }); // クラス定義のオーバーライド Ext.apply(this, { name: 'OrgStore', listeners:{ beforeload: function(store , options){ // データ読み込み開始前に排他制御開始 }, load : function( store, record, operation ){ // データ読み込み完了時に排他制御解除 }, loadexception: function(proxytObj, store, callbackObj, ex) { // データ読み込み失敗時に排他制御解除 } }); // 親コンストラクタ呼び出し xxxx.OrgStore.superclass.constructor.call(this); }; Ext.extend(xxxx.OrgStore,Ext.data.Store, { // 必要に応じて拡張 });
// メニューアイテムの生成 xxxx.common.OrgItem = new Ext.menu.Item({ icon : '/image/xxxx.png', text : 'メニュー項目1', handler: function() { // メニュー選択時の処理を記載 } }); // メニューの組み立て orgMenu = new Ext.menu.Menu().add( xxxx.common.OrgItem, // 上記で生成したメニューアイテムを追加 ); // メニューの表示 orgMenu.showAt(e.xy);
// 画面マスク処理開始 Ext.getBody().mask(); // マスク処理中の表示メッセージ Ext.get('loading').show(); // 画面マスク処理終了 Ext.getBody().unmask(); Ext.get('loading').hide();
// テキストフィールド xxxx.textField = new Ext.form.TextField({ applyTo: 'textField' }); // 数値フィールド xxxx.numberField = new Ext.form.NumberField({ applyTo: 'numberField', allowDecimals: false, allowNegative: false }); // 時間指定フィールド xxxx.timeField = new Ext.form.TimeField({ applyTo: 'timeField', format: 'H:i', increment: 30 }); // 日付指定フィールド xxxx.dateField = new Ext.form.DateField({ applyTo: 'dateField', format: 'Y/m/d', value: new Date() }); // コンボボックス用Store(JSON定義) xxxx.store = new Ext.data.JsonStore({ fields: ['value', 'displayValue'], data: [ { 'value': '01', 'displayValue': '選択項目1' }, { 'value': '02', 'displayValue': '選択項目2' } ] }); // コンボボックス xxxx.comboBox1 = new Ext.form.ComboBox({ renderTo: 'comboBox1d', hiddenName: 'comboBox1', store: xxxx.store, valueField: 'value', displayField: 'displayValue', triggerAction: "all", editable: false, mode: 'local' }); // チェックボックス xxxx.checkbox = new Ext.form.Checkbox({ applyTo: 'checkbox' }); // ラジオボタン xxxx.radio = new Ext.form.Radio({ applyTo: 'radio', id: 'radio' }); // テキストエリア xxxx.textArea = new Ext.form.TextArea({ applyTo: 'textArea', autoHeight: true });
Ext.getBody().createChild({ tag : 'div', id : 'targetDiv', style : 'display:none;' }).getUpdater().formUpdate(actionFormName,'','',targetCallback); ↑ ※以下のタグを事前に、埋め込んでおく必要があります。 // formUpdate時のコールバック関数 function targetCallback(el, success, result) { // アップデート用のタグを削除 // ※この処理がないとupdateする度に、不要ソースが溜まっていってしまう Ext.get('targetDiv').remove(); try { json = Ext.util.JSON.decode(result.responseText); } catch (e){ return; } }
var varStore = new xxxx.OrgJsonStore({ url : '/xxxxxx.do', root : 'data.data', // ネストデータの指定 fields : [{ name:'message', type: 'string' }] }); varStore.load({callback: orgMethod});
xxxx.copyHashData = function(prmSrc, prmNew) { var ret = {}; for( keys in prmSrc ) { ret[keys] = prmSrc[keys]; } for( keys in prmNew ) { ret[keys] = prmNew[keys]; } return ret; }
// JSONデータをdecodeする場合には、Extで用意されている以下のクラスで簡単にdecodeできます。 json = Ext.util.JSON.decode(result.responseText); // json.headerを取得する場合 var data = json.data; // 配列になっている場合 var data = json[0].data;