Ext动态加载Toolbar

  在使用Ext的GridPanel时候,有时候需要面板不用重新加载而去更新Store或者Toolbar,Store的方法有很多,例如官方api给我们提供的Store.load(),Store.reLoad(),等方法都可以对数据进行重新加载,在这篇博文中,主要来阐述如何动态加载Toolbar。

  实现动态的加载Toolbar,首先必须知道,Toolbar是加载在panel上的,可以根据,重新加载Panel来进行增加,但是,不管是对于性能或者是代码的维护上来说,这种方式肯定都是不可取的。

  接下来进入正题,实现Toolbar的动态加载,在官方的文档中建立一个Toolbar给出了如下的方法:

Ext.create(‘Ext.toolbar.Toolbar‘, {
    renderTo: document.body,
    width   : 500,
    items: [
        {
            // xtype: ‘button‘, // 默认的工具栏类型
            text: ‘按钮‘
        },
        {
            xtype: ‘splitbutton‘,
            text : ‘分割按钮‘
        },
        // 使用右对齐容器
        ‘->‘, // 等同 { xtype: ‘tbfill‘ }
        {
            xtype    : ‘textfield‘,
            name     : ‘field1‘,
            emptyText: ‘输入搜索词‘
        },
        // 添加工具栏项之间的垂直分隔条
        ‘-‘, // 等同 {xtype: ‘tbseparator‘} 创建 Ext.toolbar.Separator
        ‘text 1‘, // 等同 {xtype: ‘tbtext‘, text: ‘text1‘} 创建 Ext.toolbar.TextItem
        { xtype: ‘tbspacer‘ },// 等同 ‘ ‘ 创建 Ext.toolbar.Spacer
        ‘text 2‘,
        { xtype: ‘tbspacer‘, width: 50 }, // 添加一个50像素的空格
        ‘text 3‘
    ]
});

  根据上面的代码我们可以很快速的建立一个Toolbar,我们在上面的代码中应主要关注一下items属性,接下来就把上面的代码进行一些改变。

    var A = {text: ‘A‘, handler: func1};
    var B =  {text: ‘B‘, handler: func2};
    var C = {text: ‘C‘, handler: func3};
    var D = {text: ‘D‘, handler: func4};
    var E = {text: ‘E‘, handler: func5};
    var toolbar = Ext.create(‘Ext.toolbar.Toolbar‘, {
        autoShow:true,
        items: [
            A,B,C,D,E
        ]
    });

  在上述的代码中,text的值为我们的按钮,其中具体的方法在handler中,变量toolbar共加载了5个按钮ABCDE。

  用一个方法举例,当点击A按钮后出发func1函数,函数代码如下:

    function findNotProcessed() {
        toolbar.removeAll(); //清除所有按钮
        toolbar.add([C,D,E]);//添加CDE按钮
        store.load();//重新加载,要是数据没有变化可不要这一步骤
    }
时间: 2024-12-17 08:08:03

Ext动态加载Toolbar的相关文章

ext combobox动态加载数据库数据

前台: var provinceStore = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: basePath + "/stationManage/station_getProvinceJSON.action" }), reader: new Ext.data.JsonReader( { root: "" }, ["PROVINCEID", "PROVINCENAME

Java的动态加载及其安全性问题

1.什么是动态加载 Class Loaders是动态加载Java类与Resource的一种机制.它支持Laziness,type-safe linkage,user-defined extensibility和multiple communicating namespaces这4种特性. Lazy loading:Class只有在需要的时候才加载.这样减少了内存使用量,能提高系统反映速度: Type-safe linkage:动态类加载不会破坏JVM的类型安全: User-definable c

ExtJS4.2 仅需配置URL动态加载GridPanel列(带分页)

最近做ExtJS一直想做个傻瓜式的GridPanel,今天折腾了一天,从GitHub找到的老外写的解决方案, 在他的基础上做了一些改动,增加了分页,增加了columns手动配置(原本只能动态生成),大家有兴趣可以自由扩展,我做了很详细的注释 效果图如下,仅需在html页面引入ext.all,并创建自定义控件,配置url即可创建带分页效果的GirdPanel 代码: 效果图: 一.动态加载自定义控件 自定义脚本包括两部分:DynamicGrid.js和DynamicReader.js 将Ext目录

jquery动态加载js/css文件方法

先来看jquery自带的getSrcript文件 方法 代码如下 复制代码 $.getScript(url,callback) 实例 代码如下 复制代码 var testVar = 'New JS loaded!'; alert(testVar); function newFun(dynParam) { alert('You just passed '+dynParam+ ' as parameter.'); } 动态调用方法 HTML代码 代码如下 复制代码 <script type="

[翻译]-Linux上C++类的动态加载

摘要:本文是翻译文章,主要介绍了运行时重载C++类的技术,包括了Linux上的动态加载接口.C++类的动态加载技术点及实现.自动加载技术等.最后给出了两个应用案例及相关的源代码.   关键字:动态加载,C++类,Linux 原文链接:http://porky.linuxjournal.com:8080/LJ/073/3687.html   推荐: (原文)http://www.tldp.org/HOWTO/text/C++-dlopen (翻译)http://hi.baidu.com/clive

动态加载js和css的jquery plugin

一个简单的动态加载js和css的jquery代码,用于在生成页面时通过js函数加载一些共通的js和css文件. Java代码   //how to use the function below: //$.include('file/ajaxa.js');$.include('file/ajaxa.css'); //or $.includePath  = 'file/';$.include(['ajaxa.js','ajaxa.css']);(only if .js and .css files 

ExtJS 动态加载树treepanel

先来看看效果: 一.新建一个TreeStore,并添加根节点 Ext.define('Demo1.store.TreeDemoStore', { extend: 'Ext.data.TreeStore', root: { text: '目录树', id: 0 } }); 二.在view中添加treepanel,绑定TreeDemoStore Ext.define('Demo1.view.MyViewport', { extend: 'Ext.container.Viewport', initCo

ExtJS4 动态加载

由于有人说不要每次都调用ext-all.js,会影响性能,所以有考虑动态加载,动态加载时页面调用ext.js(4.0.7在调试时可考虑用ext-dev.js),然后在onReady之前调用 Ext.Loader.setPath('Ext', '/ByInvoice/extjs/src'); Ext.Loader.setConfig({ enabled: true });   注意一定是先调用setPath,再调用setConfig.由于我的程序并未从ext上继承什么,而是直接创建ext相应的类,

【EasyUi DataGrid】动态加载列

动态加载列可以说是一个从无到有的过程,如果只是网页上的DataGrid实现那就太无味了,有趣的在这里,这个页面上连带着一大堆的数据库表的查询修改,尤其是做着做着发现数据表设计有缺陷,需要的数据竟然只有出口没有入口,想想也是醉了,对业务不熟悉真心的杀不起啊.这个其实蛮好玩的,就像玩捉迷藏藏得那个人叫做nothing,再后来我又遇到了Multiple-births(多胞胎),一个页面上涉及到了六七张数据库表,里边的字段名虽然不一样,可它就是达到了百分之七八十的相似度,多亏咱是上过学的,欺负不了我读书