ExtJSサンプルまとめ-2
http://tianya23.blog.51cto.com/1081650/813863
1、カードレイアウト
id:'name 1',イベントハンドリングを追加
3)Ext.get('id/name')//FormPanelが画面に表示されているのが前提です.
4、時間モニター
buttonAlign:'センター'
6、ボタンにイベントを追加する
Extjs 3では、クラスを定義します.
Jsコード
MyApp.Login Window = Ext.exted(Ext.Window) { title: 'ログ in' initComponent: function() { Ext.アプリ(this、 { アイテム: [ { xtype: 'textfield'は、 name : 'username fieldLabel: 'Username }, ... ] }); MyApp.LoginWindow.superclass.initComponent.appy(this, アーグメンント } ) Extjs 4で以下に変更します
Jsコード
Ext.define('MyApp.Login Window'は、 { exted: 'Ext.Window'は、 title: 'ログ in' initComponent: function() { Ext.アプリ(this、 { アイテム: [ //as above ] }); MyApp.LoginWindow.superclass.initComponent.appy(this, アーグメンント } ) このようにすると二つのメリットがあります. MyApp namespaceを忘れてしまうことはありません. Ext.Windowの定義位置がMyApp.Login Windowより遅い場合、4を使用してLogin Windowを定義することができます.Ext.Windowの定義が見つかりました.
9、オブジェクトを作成する
extjs 3.x:new MyApp.Login Window()
extjs 4.x:Ext.creat(「MyApp.Login Window」、{…)
10、名前空間の定義と使用
定義:Ext.namespace('Ext.exampledia')
11、ext 3におけるstoreの使い方
type Ahead:true、
標準値: value:1、ここでvalue値はvalue Fieldの値で、displayFieldではありません.
13、コールバック関数で伝達されるパラメータを確認する
consone.dir(argments);
14、コールバック関数
ステップ1:listenersを追加する
ステップ2:対応するクラスでは、例えば、レンダーを検索する.
ステップ3:自分の処理関数を書くということは、例えばレンドメソッドのように、コールバックで完了することです.
完全な例は以下の通りです.
ステップ1:まず以下の内容を追加しなければなりません.機能は初期化tipsとヒントを右側に表示させ、デフォルトではマウスに従って起動します.
21、ipアドレス検証
ObjectをJSON(String):Ext.util.JSON.encode( Mixed o)
JSONをObjectに変換します.Ext.util.JSON.decode(String) Json
recordをオブジェクトに変換:record.data
1、カードレイアウト
- Ext.onReady(function() {
- var panel = new Ext.Panel({
- title : 'CardLayout',
- width : 400,
- height : 400,
- frame : true,
- applyTo : 'container',
- autoScroll : true,
- collapsible : true,
- defaults : {
- bodyStyle : 'background-color:#FFFFFF;padding:15px'
- },
- layout : 'card',
- activeItem : 0,
- items : [ {
- title : 'one',
- html : '123',
- id : 'p1'
- }, {
- title : 'Two',
- html : '234',
- id : 'p2'
- }, {
- title : 'Three',
- html : '255',
- id : 'p3'
- } ],
- buttons : [ {
- text : ' ',
- handler : ChangePage
- }, {
- text : ' ',
- handler : ChangePage
- } ]
- })
- function ChangePage(btn) {
- var index = Number(panel.layout.activeItem.id.substring(1));
- if (btn.text == ' ') {
- index--;
- if (index < 1)
- index = 1;
- } else {
- index++;
- if (index > 3)
- index = 3;
- }
- panel.layout.setActiveItem('p' + index);
- }
- })
2、クリックしたら選択します
- var panel = new Ext.Panel({
- width : 400,
- height : 100,
- frame:true,
- defaults : {
- xtype : 'textfield',
- width : 140,
- selectOnFocus : true,
- },
- layout : 'form',
- items : [ {
- fieldLabel : ' ',
- name : 'startTime',
- value : new Date().dateFormat('Y-m-d H:i:s')
- }, {
- fieldLabel : ' ',
- name : 'endTime',
- value : new Date().dateFormat('Y-m-d H:i:s')
- }, {
- fieldLabel : 'IP',
- name : 'searchIp'
- } ]
- });
3、textfieldの内容を取得する:Ext.getCmp(“name 1”).getValue();id:'name 1',イベントハンドリングを追加
- handler : function() {
- var content = Ext.getCmp("name1").getValue(); //
- if (content == "") {
- alert(" !");
- // return false;
- }
- Ext.getCmp("name2").setValue(content); //
- }
(1)fs.form.findField(id/name).setValue(value) (2)Ext.get(id/name).setValue(value) (3)Ext.getCmp(id).setValue(value) form内のfieldを取得する3つの方法 1)Ext.getCmp('id') 2)FormPanel.getForm().findField('id/name')3)Ext.get('id/name')//FormPanelが画面に表示されているのが前提です.
4、時間モニター
- Children = Ext.extend(Ext.util.Observable, {
- constructor: function(){
- this.state = "hungry";// full
- this.setMilk = function(milk) {
- this.fireEvent('hungry',milk);//
- },
- this.addEvents({'hungry':true}),//
- this.addListener('hungry',function(milk){
- if(this.state == 'hungry'){
- this.drink(milk);
- }else{
- alert("i am not hungry!");
- }
- }),//
- this.drink = function(milk) {
- alert("drink one bottle of milk: " + milk);
- };
-
- }
- });
- var children = new Children();
- children.setMilk('san lu milk!');
5、パンの中のbuttonの放置位置buttonAlign:'センター'
6、ボタンにイベントを追加する
- var btn = new Ext.Button({text:' '});
- var i = 0;
- btn.on("click", function() {
- var win = new Ext.Window({title:'title'+ i++,width:200, height:100});
- win.show();
- });
7、htmlページのテキストに値を付ける
- Ext.get('b1').on("click",function() {
- Ext.Ajax.request({
- url : 'hello.jsp',
- method : 'post',
- params : {
- id : '01'
- },
- timeout : 3000,
- success : function(response, opts) {
- var time = response.responseText;
- Ext.getDom('hello2').value = time;
- },
- failure : function(response, opts) {
- alert(response.responseText);
- }
- });
- });
8、クラスの定義Extjs 3では、クラスを定義します.
Jsコード
Jsコード
9、オブジェクトを作成する
extjs 3.x:new MyApp.Login Window()
extjs 4.x:Ext.creat(「MyApp.Login Window」、{…)
10、名前空間の定義と使用
定義:Ext.namespace('Ext.exampledia')
- Ext.namespace('Ext.exampledata');
-
- Ext.exampledata.states = [
- ['AL', 'Alabama', 'The Heart of Dixie'],
- ['AK', 'Alaska', 'The Land of the Midnight Sun'],
- ['AZ', 'Arizona', 'The Grand Canyon State'],
- ['AR', 'Arkansas', 'The Natural State']
- ];
名前空間で定義されたクラスを使う
- var store = new Ext.data.ArrayStore({
- fields: ['abbr', 'state', 'nick'],
- data : Ext.exampledata.states
- });
compboxを使って内容を取得する:
- var combo = new Ext.form.ComboBox({
- store: store,
- displayField:'state',
- typeAhead: true,
- mode: 'local',
- forceSelection: true,
- triggerAction: 'all',
- emptyText:'Select a state...',
- selectOnFocus:true,
- });
【注意】取得内容:store、その中のフィールドを取得する:displayField11、ext 3におけるstoreの使い方
- var store2 = new Ext.data.ArrayStore({
- fields : ['id', 'text'],
- data : [['1', ' '], ['2', ' '], ['3', ' '], ['4', ' '],
- ['5', ' '], ['6', ' '], ['7', ' '], ['8', ' '],
- ['9', ' '], ['10', ' '], ['11', ' '], ['12', ' ']]
- });
-
- var combo2 = new Ext.form.ComboBox({
- store: store2,
- displayField:'text',
- typeAhead: true,
- mode: 'local',
- forceSelection: true,
- triggerAction: 'all',
- emptyText:'Select a state...',
- selectOnFocus:true,
- });
12、compboの自動補完type Ahead:true、
標準値: value:1、ここでvalue値はvalue Fieldの値で、displayFieldではありません.
13、コールバック関数で伝達されるパラメータを確認する
consone.dir(argments);
14、コールバック関数
- listeners : {
- render : rend
- }
ステップ1:listenersを追加する
ステップ2:対応するクラスでは、例えば、レンダーを検索する.
ステップ3:自分の処理関数を書くということは、例えばレンドメソッドのように、コールバックで完了することです.
- function rend(btn) {
- Ext.Msg.alert(btn.title, btn.title + " is rendered!");
- }
完全な例は以下の通りです.
- Ext.onReady(function() {
- function rend(btn) {
- Ext.Msg.alert(btn.title, btn.title + " is rendered!");
- }
- var tabs = new Ext.TabPanel({
- renderTo : 'my-tabs',
- activeTab : 1,
- items : [ {
- xtype : 'panel',
- title : 'Tab 1',
- html : 'tab1 content..........',
- listeners : {
- render : rend
- }
- }, {
- xtype : 'panel',
- title : 'Tab 2',
- html : 'tab2 content...&&&&&&&.......',
- listeners : {
- render : rend
- }
- }, {
- xtype : 'panel',
- title : 'Tab 3',
- autoLoad : "news.html",
- listeners : {
- render : rend
- }
- } ]
- });
- new Ext.Viewport({
- layout : 'fit',
- items : tabs
- });
- });
15、ハンドル
- xtype : 'button',
- text : 'add tab',
- handler : function() {
- tabs.add({
- title : 'new table'
- });
- }
16、grid panel
- Ext.onReady(function() {
- var data = [ [ 1, 'EasyJWeb', 'EasyJF', 'www.easyjf.com' ],
- [ 2, 'jfox', 'huihoo', 'www.huihoo.org' ],
- [ 3, 'jdon', 'jdon', 'www.jdon.com' ],
- [ 4, 'springside', 'springside', 'www.springside.org.cn' ] ];
- var store = new Ext.data.SimpleStore({
- data : data,
- fields : [ "id", "name", "organization", "homepage" ]
- });
- var grid = new Ext.grid.GridPanel({
- renderTo : "hello",
- title : " Java ",
- height : 150,
- width : 600,
- columns : [ {
- header : " ",
- dataIndex : "name"
- }, {
- header : " ",
- dataIndex : "organization"
- }, {
- header : " ",
- dataIndex : "homepage"
- } ],
- store : store,
- autoExpandColumn : 2
- });
- });
17、フォームの提出
- function simpleForm() {
- var panel = new Ext.form.FormPanel({
- title : 'user basic info',
- width : 400,
- height : 200,
- frame : true,
- labelAlign : 'left',
- labelWidth : 80,
- items : [ {
- xtype : 'textfield',
- fieldLabel : 'username',
- name : 'username',
- id : 'user',
- value : 'abc'
- }, {
- xtype : 'textfield',
- fieldLabel : 'password',
- inputType : 'password',
- name : 'password',
- value : 'hello1234'
- }, {
- xtype : 'datefield',
- fieldLabel : 'birthday',
- name : 'birthday',
- value : new Date().format('Y-m-d')
- }, {
- xtype : 'textfield',
- fieldLabel : 'email',
- name : 'email',
- value : '[email protected]'
- }, {
- xtype : 'textarea',
- fieldLabel : 'description',
- name : 'description',
- value : 'hello world'
- } ],
- buttons : [ {
- text : 'save',
- handler : function() {
- panel.getForm().submit({
- url : 'UserServlet',
- params : {
- k1 : 'v1'
- },
- success : function(form, action) {
- Ext.Msg.alert('Success', "it is ok now");
- },
- });
- }
- }, {
- text : 'cancel',
- handler : function() {
- panel.hide();
- }
- }, {
- text : 'reset',
- handler : function() {
- //findField id , name
- alert(panel.getForm().findField("user").getValue());
- panel.getForm().reset();
- }
- }, {
- text : 'load',
- handler : function() {
- panel.getForm().load({
- url : 'LoadDataServlet',
- params : {
- k1 : 'v1'
- }
- //
- });
- }
- } ]
- });
- panel.render(document.body);
- }
-
- Ext.onReady(simpleForm);
18、直接domノード(Dcument.body)にレンダリングし、divを定義していません.
- var panel = new Ext.Panel({
- width : 400,
- height : 300,
- title : 'my title'
- });
- panel.render(document.body);
19、パネルの五大部分
- var panel = new Ext.Panel({
- width : 400,
- height : 300,
- title : 'my title',
- tbar:[{text:'save'},'-',{text:'edit'}],
- bbar:[{text:'next page'},'->',{text:'up page'}],
- buttonAlign:'center',
- buttons:[{text:' '},{text:' '}],
- html : '<h1> body </h1>'
- });
- panel.render(document.body);
20、認証のためにカスタムメッセージを追加するステップ1:まず以下の内容を追加しなければなりません.機能は初期化tipsとヒントを右側に表示させ、デフォルトではマウスに従って起動します.
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';
ステップ2:
- allowBlank : false,
- blankText:' '
空の場合、最終的に提示された内容は右に表示されます.blankTextの内容が表示されます.21、ipアドレス検証
- allowBlank : false,
- blankText:"IP ",
- regex: /^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.)((d|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.){2}([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))$/
22、ObjectとString変換ObjectをJSON(String):Ext.util.JSON.encode( Mixed o)
JSONをObjectに変換します.Ext.util.JSON.decode(String) Json
recordをオブジェクトに変換:record.data
- var blackListRecords = [];
- Ext.each(selectedRecords, function(record) {
- //versions.push(record.get('version'));
- //appId = record.get('appId');
- blackListRecords.push(Ext.util.JSON.encode(record.data));
- })
- Ext.Ajax.request({
- url : '../../blackList/deleteBlackLists.do',
- params : {
- records : blackListRecords
- },
- success : function() {
- Ext.MessageBox.alert(' ', ' !');
- }
- });