码迷,mamicode.com
首页 > Web开发 > 详细

Extjs 更换主题

时间:2014-12-02 10:43:22      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:style   http   io   ar   os   使用   sp   for   on   

这里基于 Extjs4.2(发文时官方刚发布了最新版5.0) 进行开发的,更换主题后,主题信息保存在本地 cookie 中,如果要保存在数据库中,请自行修改!

使用一个Combobox 让用户选择皮肤!

{
                            xtype: ‘combobox‘,
                            itemId: ‘mycombobox1‘,
                            padding: 0,
                            fieldLabel: ‘皮肤更换            ‘,
                            labelAlign: ‘right‘,
                            labelPad: 1,
                            labelWidth: 65,
                            name: ‘theme‘,
                            value: ‘ext-all.css‘,
                            displayField: ‘name‘,
                            forceSelection: true,
                            queryMode: ‘local‘,
                            store: ‘sys.Theme‘,
                            typeAhead: true,
                            valueField: ‘id‘,
                            listeners: {
                                change: { //改变选择时触发事件
                                    fn: me.onMycomboboxChange11,
                                    scope: me
                                },
                                afterrender: {//初始化数据
                                    fn: me.onMycomboboxAfterRender11,
                                    scope: me
                                }
                            }
                        }
事件处理代码如下: 采用 Ext.util.CSS.swapStyleSheet() 方法设置主题。

onMycomboboxChange11: function(field, newValue, oldValue, eOpts) {
        if(newValue!=oldValue){
            Ext.util.CSS.swapStyleSheet(‘theme‘, ‘../../extjs4.2/resources/css/‘+newValue);
            var cp = new Ext.state.CookieProvider();
            Ext.state.Manager.setProvider(cp);
            cp.set("themes",newValue);
        }
    },
    onMycomboboxAfterRender11: function(component, eOpts) {
        var cp = new Ext.state.CookieProvider();
        Ext.state.Manager.setProvider(cp);
        //cp.set("themes",data.username);
        var themes = cp.get("themes");
        if(themes){
            component.setValue(themes);
            Ext.util.CSS.swapStyleSheet(‘theme‘, ‘../../extjs4.2/resources/css/‘+themes);
        }
    }
附上效果图:

bubuko.com,布布扣

bubuko.com,布布扣

参考文章:

http://www.wenhaozhong.com/27.html


Extjs 更换主题

标签:style   http   io   ar   os   使用   sp   for   on   

原文地址:http://my.oschina.net/zhongwenhao/blog/351276

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!