Ext Js簡單常用對象的創建使用


在自己的隨筆中關於Ext Js的文章是針對Ext Js的3.4.0版的API腳本庫。

1.對於alert和prompt的創建使用

function TestMsg() {
    //可以比較一下顯示效果
    //alert(confirm("是否確認退出?"));
    //Ext.MessageBox.alert("消息", "ExtJs提示框");
    
    Ext.Msg.alert("信息提示", "這樣處理是否成功?", function () { alert('TT!') });
    //彈出輸入內容的對話框
    Ext.Msg.prompt("AA", "PSPSPSPS", function (btn, text) {
        if (btn == "ok") {
            alert(text);
        }
        else {
            alert("Not:" + text);
        }
    });
}

2.對於Ext.MessageBox.show的創建使用

function TTMsgShow() {
    Ext.MessageBox.show({
        title: '提示',
        msg: '信息內容顯示',
        width: 400,
        icon: Ext.MessageBox.QUESTION, //ERROR\INFO\WARNING\QUESTION
        buttons: Ext.MessageBox.YESNOCANCEL,//YESNOCANCEL\OKCANCEL
        animate: true, //是否有動畫效果
        multiline: true, //顯示輸入的多行數據
        //buttons: { "yes": "<h2>yeah!<h2/>", "no": "<h2>oh no!<h2/>", "cancel": "<h2>X<h2/>" },//自定義的buttons顯示
        fn: function (btn) {
            switch (btn) {
                case 'ok': Ext.MessageBox.alert('信息提示', '你點的是'+btn+'按鈕'); break;
                case 'cancel': Ext.MessageBox.alert('信息提示', '你點的是Cancel按鈕'); break;
                case 'yes': Ext.MessageBox.alert('信息提示', '你點的是YES按鈕'); break;
                case 'no': Ext.MessageBox.alert('信息提示', '你點的是No按鈕'); break;
                default:Ext.MessageBox.alert('信息提示', '你點的是'+btn+'按鈕'); break;
            }
        }
    });
}

3.對於ToolTip的創建使用

//簡單ToolTip一些效果配置
function toolTipTest() {
    new Ext.ToolTip({
        target: 'divTest', //指向區域 
        title: 'TT',
        closable: true, //是否關閉顯示
        autoHide: false, //是否自動隱藏
        draggable: true, //是否隨意拖放
        showDelay: 10, //顯示延遲,默認500
        trackMouse: true, //鼠標划過,隨鼠標移動
        html: '<h1>測試信息學想你想你想你想</h1>'
    }).show();
}
//簡單ToolTip顯示位置配置
function toolTipTT() {
    new Ext.ToolTip({
        target: 'divTest', //指向區域 
        title: '<a href="#">ToolTip Title<\a>',
        closable: true, //是否關閉顯示
        autoHide: false, //是否自動隱藏
        anchor: 'top', //位置為top\buttom\right
        anchorOffset: 50, //位置偏移量
        contentEl: 'tipContent', //一個已存在的HTML元素,或者一個已存在HTML元素的 id 
        html: '<h1>測試信息學想你想你想你想</h1>'
    }).show();
}

4.對於Window的創建使用

//簡單window頁面
function getTestWin() {
    var win = new Ext.Window({
        title: "ExtWindow",
        width: 300,
        height: 500,
        renderTo:Ext.getBody(),
        html: '<h1><font>Hello ExtJS!</font></h1>',
        items:
            [
                new Ext.Button({ text: "通過New Button添加的對象" }),
                new Ext.Button({ text: "items下添加2個New Button" }),
                { xtype: "button", text: "通過xtype設置屬性新Button" },
                { xtype: "colorpalette", width: 150, height: 100 }
            ]
    });
    win.show();
}

5.對於FormPanel的創建使用(對於表單一些常用對象的創建也在里面了)

//創建表單
function createForm() {
    //初始化單例。任何基於標簽的快速提示開始工作。
    Ext.QuickTips.init(); //初始化所有quickTips的所有提示信息

    var fromTest = new Ext.FormPanel({
        layout: 'form', autoHeight: true, frame: true, renderTo: Ext.getBody(), width: 300, height: 500, //frame是否渲染表單
        title: '<center bgcolor="Yellow" onclick="window.location.reload()">表單練習</center>',
        style: 'margin-left:auto,margin-top:50px,width:500px,background-color: Yellow',
        labelAlign: 'left', labelWidth: 80, buttonAlign: 'center', defaults: { width: 180 }, //標簽對齊方式、標簽寬度、元素對齊、默認屬性
        items: [
                    { xtype: 'textfield', fieldLabel: '文本框控件', id: 'txtContent', name: 'TextBox' },
                    { xtype: 'textfield', fieldLabel: '文本框', id: 'txt', readOnly: true, emptyText: '請輸入內容' }, //allowDecimals:允許小數;allowNegative:允許負數
                    {xtype: 'numberfield', fieldLabel: '輸入數字', id: 'txtNum', allowDecimals: false, allowNegative: false, maxValue: 1000, minValue: 0 },
                    { xtype: 'combo', fieldLabel: '下拉框控件', id: 'combTest', mode: 'local', displayField: 'Name', valueField: 'Id', editable: false,
                        typeAhead: true, forceSelection: false, triggerAction: 'all', selectOnFocus: true, //forceSelection:必選一項;triggerAction:匹配所有
                        store: new Ext.data.SimpleStore({ fields: ['Id', 'Name'], data: [['1', '李白'], ['2', '李杜'], ['3', '李麗']] })
                    },
                    { xtype: 'datefield', fieldLabel: '日歷控件', id: 'dateTest', format: 'Y-m-d', editable: false, value: new Date().format('Y-m-d') }, //默認日期
                    {xtype: 'radiogroup', fieldLabel: '單選按鈕', id: 'rabs', name: 'Radios', width: 100,
                    items: [
                    { name: 'Radios', boxLabel: '嫁人', inputValue: '1', checked: true },
                    { name: 'Radios', boxLabel: '娶人', inputValue: '0' }
                    ]
                },
                { xtype: 'checkboxgroup', fieldLabel: '復選控件', columns: 2,//復選框組
                    items: [
                    { boxLabel: '香蕉', inputValue: 'A', id: 'chekA' },
                    { boxLabel: '蘋果', inputValue: 'B', id: 'checkB' },
                    { boxLabel: '橘子', inputValue: 'C', id: 'checkC' },
                    { boxLabel: '桃子', inputValue: 'D', id: 'checkD' }
                    ]
                },
                { xtype: 'timefield', fieldLabel: '時間控件', format: 'H:i', increment: 60, value: new Date().toLocaleTimeString() },
                { xtype: 'fieldset', fieldLabel: '標簽頁', autoHeight: true,//標簽頁
                    items: [{ xtype: 'panel', title: '標簽1', frame: true, height: 50 }, { xtype: 'panel', title: '標簽2', frame: true, height: 30}]
                },
                { xtype: 'htmleditor', fieldLabel: '在線編輯器', width: 200, height: 100 }//在線編輯器
                ],
        buttons: [
                { text: '保存', tooltip: '這是保存按鈕', handler: function () { Msg('保存成功') } },//tooltip提示信息
                { text: '取消', tooltip: '這是取消按鈕', handler: function () { form1.form.reset(); } }
                ]
    });
}

6.對於Panel的創建使用

function createPanel() {
    var objPro = { title: "Hello Pannel", width: 300, height: 300, html: '<h1>Hello Pannel Source!</h1>' };
    var panel = new Ext.Panel(objPro);
    panel.render("Hello Pannel"); //將面板渲染到Hello Pannel處,為Div的id
    //此處的render方法后面的參數表示頁面上的div元素id,也可以直接通過屬性renderTo參數來替換render方法,也可以renderTo:Ext.getBody()
    //例如:new Ext.Panel({renderTo:"hello",title:"Hello Panel",width:300,height:300,html:'<h1>Hello Panel Source!</h1>'});

    //對於一個容器控件(組件),支持延遲方式創建子控件,在父控件的items屬性來傳遞數組方式構建
    //例如:var tabPanel=new Ext.TabPanel({width:200,height:300;items:[
    //{title:"面板1",height:30},{title:"面板2",height:30},{title:"面板3",height:30}
    //]});    
    //等價於:var tabPanel=new Ext.TabPanel({width:200,height:300,items[
    //new Ext.Panel({title:"面板1",height:30}),new Ext.Panel({title:"面板2",height:30},new Ext.Panel({title:"面板3",height:30}))
    //]});
    //相比而言,前者較好,前者是在初始化時創建的;后者是一開始就創建,前者實現了延遲加載
}

7.API文檔中對於“xtype”的介紹

以下是所有的'xtype'和類的對應關系 
xtype            Class
-------------    ------------------
box              Ext.BoxComponent
button           Ext.Button
buttongroup      Ext.ButtonGroup
colorpalette     Ext.ColorPalette
component        Ext.Component
container        Ext.Container
cycle            Ext.CycleButton
dataview         Ext.DataView
datepicker       Ext.DatePicker
editor           Ext.Editor
editorgrid       Ext.grid.EditorGridPanel
flash            Ext.FlashComponent
grid             Ext.grid.GridPanel
listview         Ext.ListView
panel            Ext.Panel
progress         Ext.ProgressBar
propertygrid     Ext.grid.PropertyGrid
slider           Ext.Slider
spacer           Ext.Spacer
splitbutton      Ext.SplitButton
tabpanel         Ext.TabPanel
treepanel        Ext.tree.TreePanel
viewport         Ext.ViewPort
window           Ext.Window

Toolbar components
---------------------------------------
paging           Ext.PagingToolbar
toolbar          Ext.Toolbar
tbbutton         Ext.Toolbar.Button        (過時的;使用 button)
tbfill           Ext.Toolbar.Fill
tbitem           Ext.Toolbar.Item
tbseparator      Ext.Toolbar.Separator
tbspacer         Ext.Toolbar.Spacer
tbsplit          Ext.Toolbar.SplitButton   (過時的;使用 splitbutton)
tbtext           Ext.Toolbar.TextItem

Menu components
---------------------------------------
menu             Ext.menu.Menu
colormenu        Ext.menu.ColorMenu
datemenu         Ext.menu.DateMenu
menubaseitem     Ext.menu.BaseItem
menucheckitem    Ext.menu.CheckItem
menuitem         Ext.menu.Item
menuseparator    Ext.menu.Separator
menutextitem     Ext.menu.TextItem

Form components
---------------------------------------
form             Ext.form.FormPanel
checkbox         Ext.form.Checkbox
checkboxgroup    Ext.form.CheckboxGroup
combo            Ext.form.ComboBox
datefield        Ext.form.DateField
displayfield     Ext.form.DisplayField
field            Ext.form.Field
fieldset         Ext.form.FieldSet
hidden           Ext.form.Hidden
htmleditor       Ext.form.HtmlEditor
label            Ext.form.Label
numberfield      Ext.form.NumberField
radio            Ext.form.Radio
radiogroup       Ext.form.RadioGroup
textarea         Ext.form.TextArea
textfield        Ext.form.TextField
timefield        Ext.form.TimeField
trigger          Ext.form.TriggerField

Chart components
---------------------------------------
chart            Ext.chart.Chart
barchart         Ext.chart.BarChart
cartesianchart   Ext.chart.CartesianChart
columnchart      Ext.chart.ColumnChart
linechart        Ext.chart.LineChart
piechart         Ext.chart.PieChart

Store xtypes
---------------------------------------
arraystore       Ext.data.ArrayStore
directstore      Ext.data.DirectStore
groupingstore    Ext.data.GroupingStore
jsonstore        Ext.data.JsonStore
simplestore      Ext.data.SimpleStore      (過時的;使用 arraystore)
store            Ext.data.Store
xmlstore         Ext.data.XmlStore

是不是應該加上一些截圖看看效果呢?自己不太喜歡寫很長的文章盡量縮減,因為太長的話,大家都會沒有耐心看下去的,雖這樣不是很好,但也考慮一些大家感受。想想如果把代碼注釋的足夠詳細,那么將更容易讓人理解了。只有效果截圖,而沒有代碼注釋,這樣的代碼就相當於不寫,可讀性不好,別人不明白你寫的是什么,良好的注釋還是有必要的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM