包含extjsdemoonline的词条

发布时间:2023-12-08

包含extjsdemoonline的词条

更新:2022-11-12 13:30

本文目录一览:

  1. [转:新手如何学习ExtJS 4](#转:新手如何学习ExtJS 4)
  2. [ext 点击左边的树,在右边center区域弹出相应的内容](#ext 点击左边的树,在右边center区域弹出相应的内容)
  3. 动态设置extjs文本框的事件
  4. 谁有extjs4选择记录并修改的demo?
  5. [谁有 完整的 extjs3.0 demo 后台的例子 ext配合iframe标签使用](#谁有 完整的 extjs3.0 demo 后台的例子 ext配合iframe标签使用)
  6. 本人想要学习extjs...完全不知道如何下手...看一些教程都没有讲原理的...觉的都没有学到东西。

转:新手如何学习ExtJS 4

最近运营ExtJS交流群的时候,感触颇深,我感觉作为一个老手,我有必要介绍一下如何学习这种基础性问题。新手如何学习ExtJS4?如何入门ExtJS4?如何快速学习ExtJS4?

  1. 仔细阅读新手教程 新手教程是指ExtJS官方文档中Guides那一系列文章,因为是英文的,新手阅读起来可能有障碍,为此我特意翻译了这一系列教程,根据使用频度我已经差不多把最常用到的教程翻译完了,后续还将继续翻译。 通读这一系列教程后,你会对ExtJS的基本使用方法有个框架性的了解,你会大体上知道如何实现常用功能。现在我把所有已翻译的教程列举在此,记住,认真的读一定对你有帮助。
    • ExtJS 4 入门
    • ExtJS 4 类系统(Class System)介绍
    • ExtJS MVC架构讲解
    • ExtJS 4 布局和容器
    • ExtJS 4 组件详解
    • ExtJS 4 数据(包)详解
    • ExtJS 4 Grids 详解
    • ExtJS 4 表单
    • ExtJS 4 树
  2. 把官方文档中的所有Demo都浏览一遍 做这个事情是为了了解官方Demo中实现了哪些功能,当自己要做一个功能时,有例子照着做是最快的,浏览一遍就会对现有的Demo有个大概印象,当你没有头绪的时候你的大脑会在后台查找之前的印象的,仔细浏览一遍,没有错。
  3. 熟读API Docs(API文档) 最近遇到很多人问问题,把一段自己想当然写出来的代码贴上来问为什么不对,事实上你仔细查一下API文档就知道,你这种用法ExtJS根本就不支持,当然不对。 使用搜索的好处是:通常可以较快速的解决一些无头绪的问题

ext 点击左边的树,在右边center区域弹出相应的内容

不能用href 要on点击事件 类似

v1.on("click", function() {
    obj = Ext.getCmp("centerTabPanel");
    obj1 = Ext.getCmp("info1");
});

动态设置extjs文本框的事件

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Extjs 4.2 demo</title>
    <link rel="stylesheet" href="../resources/css/ext-all.css">
    <script src="../bootstrap.js"></script>
    <script>
        Ext.onReady(function(){
            Ext.create('Ext.form.FormPanel',{
                width:250,
                bodyPadding: '5 5 0',
                fieldDefaults: {
                    labelWidth: 75
                },
                items:[{
                    xtype:'fieldset',
                    title: 'information',
                    defaultType: 'textfield',
                    layout: 'anchor',
                    defaults: {
                        anchor: '100%'
                    },
                    items :[{
                        fieldLabel: 'First',
                        name: 'first',
                        listeners:{
                            change:function(field,nv,ov,opts){
                                var lastfield = this.getBubbleParent().items.last();
                                lastfield.$ml = lastfield.un('focus',lastfield.$ml);
                                lastfield.$ml = function(){
                                    Ext.Msg.alert('结果',Ext.String.format('第一个字段的值为:"{0}",最后一个字段的值为:"{1}"',nv,this.value));
                                };
                                //设置最后一个textfield的listeners
                                lastfield.on('change',lastfield.$ml,lastfield);
                            }
                        }
                    },{
                        fieldLabel: 'Second',
                        name: 'second'
                    },{
                        fieldLabel: 'Last',
                        name: 'last'
                    }]
                }],
                renderTo:Ext.getBody()
            });
        });
    </script>
</head>
<body>
</body>
</html>

谁有extjs4选择记录并修改的demo?

实际extjs自己带的examples里就有的,下面的js你参考下:

Ext.require([
    'Ext.grid.*',
    'Ext.data.*',
    'Ext.util.*',
    'Ext.state.*',
    'Ext.form.*'
]);
Ext.onReady(function(){
    // Define our data model
    Ext.define('Employee', {
        extend: 'Ext.data.Model',
        fields: [
            'name',
            'email',
            { name: 'start', type: 'date', dateFormat: 'Ymd' },
            { name: 'salary', type: 'float' },
            { name: 'active', type: 'bool' }
        ]
    });
    // Generate mock employee data
    var data = (function() {
        var lasts = ['Jones', 'Smith', 'Lee', 'Wilson', 'Black', 'Williams', 'Lewis', 'Johnson', 'Foot', 'Little', 'Vee', 'Train', 'Hot', 'Mutt'],
            firsts = ['Fred', 'Julie', 'Bill', 'Ted', 'Jack', 'John', 'Mark', 'Mike', 'Chris', 'Bob', 'Travis', 'Kelly', 'Sara'],
            lastLen = lasts.length,
            firstLen = firsts.length,
            usedNames = {},
            data = [],
            s = new Date(2007, 0, 1),
            eDate = Ext.Date,
            now = new Date(),
            getRandomInt = Ext.Number.randomInt,
            generateName = function() {
                var name = firsts[getRandomInt(0, firstLen - 1)] + ' ' + lasts[getRandomInt(0, lastLen - 1)];
                if (usedNames[name]) {
                    return generateName();
                }
                usedNames[name] = true;
                return name;
            };
        while (s.getTime() < now.getTime()) {
            var ecount = getRandomInt(0, 3);
            for (var i = 0; i < ecount; i++) {
                var name = generateName();
                data.push({
                    start : eDate.add(eDate.clearTime(s, true), eDate.DAY, getRandomInt(0, 27)),
                    name : name,
                    email: name.toLowerCase().replace(' ', '.') + '@sencha-test.com',
                    active: getRandomInt(0, 1),
                    salary: Math.floor(getRandomInt(35000, 85000) / 1000) * 1000
                });
            }
            s = eDate.add(s, eDate.MONTH, 1);
        }
        return data;
    })();
    // create the Data Store
    var store = Ext.create('Ext.data.Store', {
        // destroy the store if the grid is destroyed
        autoDestroy: true,
        model: 'Employee',
        proxy: {
            type: 'memory'
        },
        data: data,
        sorters: [{
            property: 'start',
            direction: 'ASC'
        }]
    });
    var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
        clicksToMoveEditor: 1,
        saveBtnText:'保存',
        cancelBtnText:'取消',
        errorsText:'错误',
        dirtyText:'必须先保存或放弃修改',
        autoCancel: false,
        listeners: {
            'edit': function(editor, records) {
                alert(records.record.data.name);
            }
        }
    });
    // create the grid and specify what field you want
    // to use for the editor at each column.
    var grid = Ext.create('Ext.grid.Panel', {
        store: store,
        viewConfig: {
            stripeRows: true
        },
        columns: [{
            header: 'Name',
            dataIndex: 'name',
            flex: 1,
            editor: {
                // defaults to textfield if no xtype is supplied
                allowBlank: false
            }
        }, {
            header: 'Email',
            dataIndex: 'email',
            width: 160,
            editor: {
                allowBlank: false,
                vtype: 'email'
            }
        }, {
            xtype: 'datecolumn',
            header: 'Start Date',
            dataIndex: 'start',
            format: 'Ymd',
            width: 105,
            editor: {
                xtype: 'datefield',
                allowBlank: false,
                format: 'Ymd'
            }
        }, {
            xtype: 'numbercolumn',
            header: 'Salary',
            dataIndex: 'salary',
            format: '0,0.00',
            width: 90,
            editor: {
                xtype: 'numberfield',
                allowBlank: false,
                minValue: 1,
                maxValue: 150000
            }
        }, {
            xtype: 'checkcolumn',
            header: 'Active?',
            dataIndex: 'active',
            width: 60,
            editor: {
                xtype: 'checkbox',
                cls: 'x-grid-checkheader-editor'
            }
        }],
        renderTo: 'editor-grid',
        width: 600,
        height: 400,
        title: 'Employee Salaries',
        frame: true,
        tbar: [{
            text: 'Add Employee',
            iconCls: 'employee-add',
            handler : function() {
                rowEditing.cancelEdit();
                // Create a model instance
                var r = Ext.create('Employee', {
                    name: 'New Guy',
                    email: 'new@sencha-test.com',
                    start: Ext.Date.clearTime(new Date()),
                    salary: 50000,
                    active: true
                });
                store.insert(0, r);
                rowEditing.startEdit(0, 0);
            }
        }, {
            itemId: 'removeEmployee',
            text: 'Remove Employee',
            iconCls: 'employee-remove',
            handler: function() {
                var sm = grid.getSelectionModel();
                rowEditing.cancelEdit();
                store.remove(sm.getSelection());
                if (store.getCount() > 0) {
                    sm.select(0);
                }
            },
            disabled: true
        }],
        plugins: [rowEditing],
        listeners: {
            'selectionchange': function(view, records) {
                grid.down('#removeEmployee').setDisabled(!records.length);
            }
        }
    });
});

谁有 完整的 extjs3.0 demo 后台的例子 ext配合iframe标签使用

Extjs 的Panel放入iframe的三重方法

//way 1 //it works
var frame1 = document.createElement("IFRAME");
frame1.id = "frame1";
frame1.frameBorder = 0;
frame1.src = "reports/empty-report.html";
frame1.height = "100%";
frame1.width = "100%";
var panel2 = new Ext.Panel( {
    id : "panel2",
    items: [ frame1 ]
    //contentEl: "frame1" //this won't work
});
//way 2 //it works, too
var panel2 = new Ext.Panel( {
    id: "panel2",
    fitToFrame: true,
    html: '<iframe id="frame1" src="../examples/layout/table.html" frameborder="0" width="100%" height="100%"></iframe>'
});

本人想要学习extjs...完全不知道如何下手...看一些教程都没有讲原理的...觉的都没有学到东西。

4.0.x的话最好的资料就是官方帮助文档了,虽然是英文的,看多了就习惯了,如果你了解javaScript不需要什么教程,用到什么就查什么,时间久了就熟悉了,我也是这样,非要视频的话,在技术牛人论坛里面有前面基础的10集视频免费看,新开发的群javaEE_Extjs欢迎新手加入,共同进步