ExtJSサンプルまとめ-3
http://tianya23.blog.51cto.com/1081650/813863
http://tianya23.blog.51cto.com/1081650/821649
1、Ajax標準要求:
Dcument.body
5、new Ext.Viewport:
レンダーやショーはいらないので、divを先に定義する必要もありません。
全体のレイアウトによく使われます。
6、windowの機能点
モダリティウィンドウ:modal : ボロア
7、ダイアログ
confirmダイアログ:
8、ツリー展開 Ext.each(children、 function(child) { if (!child.isLeaf() { child.expand() } });
9、treeまとめ
ルートノードを隠す:TreePanelのroot Visibleを使う:false
すべてを展開します。TreePanelのexpandAll()
すべてを収める:collappseAll()
10、formフィードバック
//disabled:true、提出不可
readOnly:true、
style:“background:萶C 1;”
12、フォームリセットと設定
リセット:
servlet:
中国語を含む最初の設定文字セット:レスポンス.set CharcterEnccoding(「utf-8」);
先端ロードデータ:
成功後、再度searchメソッドを呼び出し、gridの内容を再度確認する。
16、commbo表示と伝達の異なる値の処理
17、フォームの提出
方法1:buttonを取得することにより、増加したclickイベントでajax要求を使用し、requestでform属性を追加でき、フォームのパラメータを取得して提出する。
方法2:formというコンポーネントを取得してsubmitを操作する
http://tianya23.blog.51cto.com/1081650/821649
1、Ajax標準要求:
- Ext.Ajax.request({
- url : '../../blackList/deleteBlackLists.do',
- params : {
- records : blackListRecords
- },
- success : function(response, opts) {
- var data = Ext
- .decode(response.responseText);
- if (data.success) {
- Ext.MessageBox.alert(' ', ' !');
- } else {
- Ext.MessageBox.alert(' ', ' !');
- }
- },
- failure : function() {
- Ext.MessageBox.alert(' ', ' !');
- }
- });
2、ログイン
- Ext.onReady(function() {
- Ext.QuickTips.init();
- var adminRadio = new Ext.form.Radio({
- boxLabel : ' ',
- inputValue : 'admin',
- listeners : {
- 'check' : function() {
- if (adminRadio.getValue()) {
- userRadio.setValue(false);
- adminRadio.setValue(true);
- }
- }
- }
- });
- var userRadio = new Ext.form.Radio({
- boxLabel : ' ',
- inputValue : 'user',
- listeners : {
- 'check' : function() {
- if (userRadio.getValue()) {
- adminRadio.setValue(false);
- userRadio.setValue(true);
- }
- }
- }
- });
- var _form = new Ext.form.FormPanel({
- title : ' ',
- frame : true,
- width : 290,
- height : 160,
- layout : 'form',
- buttonAlign : 'center',
- labelAlign : 'center',
- defaults : {
- width : 160,
- labelWidth : 80,
- xtype : 'textfield'
- },
- items : [{
- fieldLabel : ' ',
- vtype : 'alpha',
- id : 'name',
- name : 'name'
- }, {
- fieldLabel : ' ',
- inputType : 'password',
- vtype : 'alpha',
- id : 'pass',
- name : 'pass'
- }, {
- xtype : 'radiogroup',
- fieldLabel : ' ',
- id : 'typeRadio',
- items : [adminRadio, userRadio]
- }],
- buttons : [{
- text : ' ',
- style : 'margin-right:15'
- }, {
- text : ' ',
- style : 'margin-left:15',
- handler : function() {
- var _name = _form.findById('name').setValue('');
- var _pass = _form.findById('pass').setValue('');
- }
- }]
- });
- _form.render('container');
- })
3、columnレイアウトの中のfieldLabelが消える解決方法:中にlayoutを加える。 : 'form'
- layout : 'form',
- items : [item_ListType, {
- layout : 'column',
- border : false,
- labelWidth : 60,
- items : [{
- layout : 'form',
- items : listType
- }, {
- layout : 'form',
- items : item_simpleQuery
- }]
- }, {
- layout : 'column',
- border : false,
- items : [{
- layout : 'form',
- items : item_startTime
- }, {
- layout : 'form',
- items : item_endTime
- }]
- }]
4、htmlのdomノード:bodyDcument.body
5、new Ext.Viewport:
レンダーやショーはいらないので、divを先に定義する必要もありません。
全体のレイアウトによく使われます。
6、windowの機能点
モダリティウィンドウ:modal : ボロア
7、ダイアログ
confirmダイアログ:
- Ext.Msg.confirm('Name', ' ?', function(btn) {
- if (btn == 'yes') {
- // process text value and close...
- Ext.Msg.alert('Status', " ");
- //btn.hide();
- } else {
- Ext.Msg.alert('Status', " ");
- }
- });
promptダイアログ:
- Ext.Msg.prompt('Name', 'Please enter your name:', function(btn, text){
- if (btn == 'ok'){
- // process text value and close...
- Ext.Msg.alert('Status', text);
- //btn.hide();
- }
- });
モーダルダイアログ:modal: true
- var window = new Ext.Window({
- width : 400,
- height : 300,
- modal: true
- });
- window.show();
8、ツリー展開
- var vroot = new Ext.tree.TreeNode({
- text : 'root node',
- expanded : tree,
- // hidden : true
- });
-
- var sub11 = new Ext.tree.TreeNode({
- text : 'sub node11'
- });
- var sub12 = new Ext.tree.TreeNode({
- text : 'sub node12'
- });
- var sub1 = new Ext.tree.TreeNode({
- text : 'sub node1'
- });
- sub1.appendChild(sub11);
- sub1.appendChild(sub12);
-
- var sub2 = new Ext.tree.TreeNode({
- text : 'sub node1'
- });
- var sub31 = new Ext.tree.TreeNode({
- text : 'sub node11'
- });
- var sub32 = new Ext.tree.TreeNode({
- text : 'sub node12'
- });
-
- var sub3 = new Ext.tree.TreeNode({
- text : 'sub node1'
- });
- sub3.appendChild(sub31);
- sub3.appendChild(sub32);
-
- var sub4 = new Ext.tree.TreeNode({
- text : 'sub node1'
- });
-
- vroot.appendChild(sub1);
- vroot.appendChild(sub2);
- vroot.appendChild(sub3);
- vroot.appendChild(sub4);
-
- var tree = new Ext.tree.TreePanel({
- title : 'tree panel',
- root : vroot,
- width : 400,
- height : 300,
- listeners : {
- afterrender : function(p) {
- var root = p.getRootNode();
- root.expand();
- var children = root.childNodes;
- Ext.each(children, function(child) {
- if (!child.isLeaf()) {
- child.expand();
- }
- });
- }
- }
- });
- tree.render(document.body);
8、Aray配列操作: Ext.each9、treeまとめ
ルートノードを隠す:TreePanelのroot Visibleを使う:false
すべてを展開します。TreePanelのexpandAll()
すべてを収める:collappseAll()
10、formフィードバック
- Ext.Ajax.request({
- url : '../../server/getServerById.do',
- params : {
- serverId : serverId
- },
- success : function(response, opts) {
- console.log(response);
- var data = Ext.decode(response.responseText).data[0];
- server.getComponent(0).getForm().setValues(data);
- },
- failure : function(response, opts) {
- Ext.Msg.alert("info", " server ");
- }
- });
11、textfieldを灰にする//disabled:true、提出不可
readOnly:true、
style:“background:萶C 1;”
12、フォームリセットと設定
リセット:
- text : 'reset',
- handler : function() {
- fpanel.getForm().reset();
- }
設定値:
- text : 'set value',
- handler : function() {
- fpanel.getForm().setValues([ {
- id : 'name',
- value : 'zhangsan'
- }, {
- id : 'age',
- value : '15'
- }, {
- id : 'description',
- value : 'my name is zhangsan!'
- } ]);
- }
検索値:
- text : 'find value',
- handler : function() {
- var nameValue = fpanel.getForm().findField('name').getValue();
- alert(nameValue);
- }
13、リモート取得データservlet:
中国語を含む最初の設定文字セット:レスポンス.set CharcterEnccoding(「utf-8」);
- response.getWriter()
- .write("{success:true,msg:' ',data : {name : 'lisi', age :'20',description : 'i am lisi!'}}");
【注意】フォーマットは:{success:true,msg:'成功',data : {name : 'lisi メッセージ :'20'}、そのうち:success、dataがキーワードです。先端ロードデータ:
- text : 'load value from remote',
- handler : function() {
- fpanel.getForm().load({
- url : 'LoginServlet',
- params : {
- appId : 5
- }
- })
- }
14、起動とローディング:アフタヌーンイベントの傍受
- listeners : {
- 'afterrender' : function() {
- fpanel.getForm().load({
- url : 'LoginServlet',
- params : {
- appId : 5
- },
- success : function(response, responseText) {
- Ext.Msg.alert('success', responseText.msg);
- },
- failure : function(response, responseText) {
- Ext.Msg.alert('fali', responseText.msg);
- }
- })
-
- }
- }
15、gridの内容を動的に更新する成功後、再度searchメソッドを呼び出し、gridの内容を再度確認する。
16、commbo表示と伝達の異なる値の処理
- var listKey = new Ext.form.ComboBox({
- fieldLabel : ' ',
- //name : 'listKey',
- width : 130,
- typeAhead : true,
- triggerAction : 'all',
- lazyRender : true,
- mode : 'local',
- allowBlank : false,
- store : new Ext.data.ArrayStore({
- fields : ['listKeyDisplay', 'list_Key'],
- data : [ ['all', ''],['ip', 'ip'], ['cookie', 'cookie'],['__last_loginid__', '__last_loginid__']]
- }),
- hiddenName:'listKey',
- displayField : 'listKeyDisplay',
- valueField : 'list_Key',
- listeners:{
- afterrender: function(thiz) {
- thiz.selectText('all');
- }
- }
- });
【注意】hiddenNameは必ずあります。でなければdisplayの値を伝えます。valueの値転送を設定しますが、display値は無効ですので、afterrenderを使って設定します。17、フォームの提出
方法1:buttonを取得することにより、増加したclickイベントでajax要求を使用し、requestでform属性を追加でき、フォームのパラメータを取得して提出する。
方法2:formというコンポーネントを取得してsubmitを操作する