[ExtJS5学习笔记]第二十九节 sencha ext js 5.1.0中动态更换皮肤主题

本文地址:http://blog.csdn.net/sushengmiyan/article/details/42016107

本文作者:sushengmiyan

------------------------------------------------------------------------------------------------------------------------------------

为方便起见,使用sencha cmd创建一个工程,使用app build命令build工程,使用web start命令启动服务。

好了,现在更改下main.js中的一点代码,增加如下内容到panel中:

,{
        xtype: ‘combo‘,
        width: ‘100‘,
		labelWidth: ‘40‘,
		fieldLabel: ‘Theme‘,
		displayField: ‘name‘,
		valueField: ‘value‘,
		//labelStyle: ‘cursor:move;‘,
		//margin: ‘5 5 5 5‘,
		queryMode: ‘local‘,
		store: Ext.create(‘Ext.data.Store‘, {
			fields: [‘value‘, ‘name‘],
			data : [
				{ value: ‘neptune‘, name: ‘Neptune主题‘ },
				{ value: ‘neptune-touch‘, name: ‘Neptune Touch主题‘ },
				{ value: ‘crisp‘, name: ‘Crisp主题‘ },
				{ value: ‘crisp-touch‘, name: ‘Crisp Touch主题‘ },
				{ value: ‘classic‘, name: ‘Classic主题‘ },
				{ value: ‘gray‘, name: ‘Gray主题‘ }
			]
		}),
		//value: theme,
		listeners: {
			select: function(combo) {
				var  theme = combo.getValue();
				var	href = ‘ext/packages/ext-theme-‘+theme+‘/build/resources/ext-theme-‘+theme+‘-all.css‘;
				var	link = Ext.fly(‘theme‘);

				if(!link) {
					link = Ext.getHead().appendChild({
						 tag:‘link‘,
						 id:‘theme‘,
						 rel:‘stylesheet‘,
						 href:‘‘
					});
				};
				link.set({href:Ext.String.format(href, theme)});
			}
		}
    }

main.js代码应该如下所示:(完整内容)

/**
 * This class is the main view for the application. It is specified in app.js as the
 * "autoCreateViewport" property. That setting automatically applies the "viewport"
 * plugin to promote that instance of this class to the body element.
 *
 * TODO - Replace this content of this view to suite the needs of your application.
 */
Ext.define(‘oaSystem.view.main.Main‘, {
    extend: ‘Ext.container.Container‘,
    requires: [
        ‘oaSystem.view.main.MainController‘,
        ‘oaSystem.view.main.MainModel‘
    ],

    xtype: ‘app-main‘,

    controller: ‘main‘,
    viewModel: {
        type: ‘main‘
    },

    layout: {
        type: ‘border‘
    },

    items: [{
        xtype: ‘panel‘,
        bind: {
            title: ‘{name}‘
        },
        region: ‘west‘,
        html: ‘<ul><li>This area is commonly used for navigation, for example, using a "tree" component.</li></ul>‘,
        width: 250,
        split: true,
        tbar: [{
            text: ‘Button‘,
            handler: ‘onClickButton‘
        },{
        xtype: ‘combo‘,
        width: ‘100‘,
		labelWidth: ‘40‘,
		fieldLabel: ‘Theme‘,
		displayField: ‘name‘,
		valueField: ‘value‘,
		//labelStyle: ‘cursor:move;‘,
		//margin: ‘5 5 5 5‘,
		queryMode: ‘local‘,
		store: Ext.create(‘Ext.data.Store‘, {
			fields: [‘value‘, ‘name‘],
			data : [
				{ value: ‘neptune‘, name: ‘Neptune主题‘ },
				{ value: ‘neptune-touch‘, name: ‘Neptune Touch主题‘ },
				{ value: ‘crisp‘, name: ‘Crisp主题‘ },
				{ value: ‘crisp-touch‘, name: ‘Crisp Touch主题‘ },
				{ value: ‘classic‘, name: ‘Classic主题‘ },
				{ value: ‘gray‘, name: ‘Gray主题‘ }
			]
		}),
		//value: theme,
		listeners: {
			select: function(combo) {
				var  theme = combo.getValue();
				var	href = ‘ext/packages/ext-theme-‘+theme+‘/build/resources/ext-theme-‘+theme+‘-all.css‘;
				var	link = Ext.fly(‘theme‘);

				if(!link) {
					link = Ext.getHead().appendChild({
						 tag:‘link‘,
						 id:‘theme‘,
						 rel:‘stylesheet‘,
						 href:‘‘
					});
				};
				link.set({href:Ext.String.format(href, theme)});
			}
		}
    }]
    },{
        region: ‘center‘,
        xtype: ‘tabpanel‘,
        items:[{
            title: ‘Tab 1‘,
            html: ‘<h2>Content appropriate for the current navigation.</h2>‘
        }]
    }]
});

纠结了很久的问题终于释怀了。之前看的都是使用swapstylesheet我一直么有成功过。偶尔看的了这篇文章,觉得不错,果真成功了。

http://extjs.eu/lightweight-theming/

推荐一下,这个网站,内容比较充实,界面也比较好看。就是有些插件需要花钱购买。

时间: 2024-10-09 16:10:07

[ExtJS5学习笔记]第二十九节 sencha ext js 5.1.0中动态更换皮肤主题的相关文章

[ExtJS5学习笔记]sencha ext js 5.1.0中动态更换皮肤主题

本文地址:http://blog.csdn.net/sushengmiyan/article/details/42016107 本文作者:sushengmiyan ------------------------------------------------------------------------------------------------------------------------------------ 为方便起见,使用sencha cmd创建一个工程,使用app buil

[EXTJS5学习笔记]第二十六节 在eclipse/myeclipse中使用sencha extjs的插件

本文地址:http://blog.csdn.net/sushengmiyan/article/details/40507383 插件下载: http://download.csdn.net/detail/sushengmiyan/8085851 本文作者:sushengmiyan -------------------------------------------------------------------------------------------------------------

[ExtJS5学习笔记]第二十五节 利用window.open()函数实现ExtJS5的登陆页面跳转

本文地址:http://blog.csdn.net/sushengmiyan/article/details/40427543 mvvm方式实现登陆的博客:http://blog.csdn.net/sushengmiyan/article/details/38815923 本文作者:sushengmiyan -----------------------------------------------------------------------------------------------

[ExtJS5学习笔记]第二十四节 Extjs5中表格gridpanel或者表单数据后台传输remoteFilter设置

本文地址:http://blog.csdn.net/sushengmiyan/article/details/39667533 官方文档:http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Ext.data.Store-method-getFilters 本文作者:sushengmiyan ----------------------------------------------------------------------------------

[ExtJS5学习笔记]第十九节 Extjs5中通过设置form.Panel的FieldSet集合属性控制多个field集合

本文地址:http://blog.csdn.net/sushengmiyan/article/details/39209533 官方例子:http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Ext.form.FieldSet 本文作者:sushengmiyan -------------------------------------------------------------------------------------------------

学习笔记第二十九节课

监控io性能 iostat iotop 在运维工作中是除了 cpu 内存外 也是一个重要的指标,是查看磁盘的问题. 有时候cpu 内存都有剩余,负载却很高,用vmstat 查看,发现 b 或者wa 比较大.说明磁盘有瓶颈. iostat 和sar是同一个包.用法是 直接回车 也可以加 数字 . 显示出来的东西就i是你的硬盘 的读写速度.这个看不出来什么 和sar -q 是差不多的. 主要的是 iostat -x 里面的%util 这个百分比表示io等待. 原文地址:http://blog.51c

[ExtJS5学习笔记]第十六节 Extjs5使用panel新增的ViewModel属性绑定数据

本文地址:http://blog.csdn.net/sushengmiyan/article/details/39078627 sencha官方API:http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Ext.panel.Panel-cfg-viewModel 本文作者:sushengmiyan ------------------------------------------------------------------------------

[ExtJS5学习笔记]第二十八节 sencha ext js 5.1.0发布版本正式发布

本文地址:http://blog.csdn.net/sushengmiyan/article/details/41242993 本文作者:sushengmiyan ------------------------------------------------------------------------------------------------------------------------------------ 官方博客发布了这个新版本说明,英文文章请戳下面 http://www.

[ExtJS5学习笔记]第二十节 Extjs5配合数组的push方法,动态创建并加载组件

本文地址:http://blog.csdn.net/sushengmiyan/article/details/39226773 官方例子:http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Array-method-push 本文作者:sushengmiyan -------------------------------------------------------------------------------------------------