• 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',  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();//重新加载,要是数据没有变化可不要这一步骤
        }
  • 相关阅读:
    Mapreduce实例——求平均值
    Mapreduce实例——单表join
    《短码之美》读书笔记1
    Mapreduce实例——Map端join使用addCacheFile()方法报错,找不到文件
    Mapreduce实例——Map端join
    C# 异常捕获
    Mapreduce实例——排序
    无名
    数据库设计体会
    oracle 删除表空间错误 提示:ora02429:无法删除用于强制唯一/主键的索引。
  • 原文地址:https://www.cnblogs.com/DonaHero/p/6159895.html
Copyright © 2020-2023  润新知