论坛首页 Web前端技术论坛

打造Ext2.0模块化单页系统Demo

浏览 24485 次
精华帖 (1) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-28  
goodboy 写道
弱弱的问一句:能不能增加模块变量,用于模块js,比如我想取自定义的node.attributes.ids值用在模块js中,如何作?


修改这个方法就可以

//点击菜单方法(node:被点击的节点)
    clickTree: function(node){
        //如果节点不是叶子则返回
        if(!node.isLeaf()){   
            return false;   
        }
        
        var id = 'tab-' + node.attributes.ids;
        var tab = Ext.getCmp(id);
        if(!tab){
            tab = this.body.add(new Ext.Panel({
                id: id,
                title: node.text,
                layout: 'fit',
                closable: true
            }));
            this.body.setActiveTab(tab);
            //加载模块
            this.loadModel(node.attributes.ids,tab);
        }else{
            this.body.setActiveTab(tab);
        }
    },

0 请登录后投票
   发表时间:2008-10-30  

tbar: [{
                iconCls:'btn-save',
                text: '保存',
handler:function(){
this.body.form.submit({
waitMsg:'正在保存。。。',
url:"zcadd.php",
method:'POST',
success:function(){
           
Ext.Msg.alert("提示信息","数据保存成功!");
},
scope:this
});
}
/////////////////////////////
在添加表单那个模块中我增加了保存的hanler,
为什么this.body.form.submit这一句会提示错误this.body is undefined??
0 请登录后投票
   发表时间:2008-11-12  
pioul 写道

tbar: [{
                iconCls:'btn-save',
                text: '保存',
handler:function(){
this.body.form.submit({
waitMsg:'正在保存。。。',
url:"zcadd.php",
method:'POST',
success:function(){
           
Ext.Msg.alert("提示信息","数据保存成功!");
},
scope:this
});
}
/////////////////////////////
在添加表单那个模块中我增加了保存的hanler,
为什么this.body.form.submit这一句会提示错误this.body is undefined??

把this.body 改成一个自己定义的变量就ok了,如:var formbody = 。。。。,然后 formbody.form.submit
0 请登录后投票
   发表时间:2008-11-26  
我用类似于楼主的Demo的方式实现了一个系统,但是我用EXT.dataview时,用this.main.doLayout();页面不显示。是不是我还得实现什么方法?
0 请登录后投票
   发表时间:2008-11-27  
hany 写道

我用类似于楼主的Demo的方式实现了一个系统,但是我用EXT.dataview时,用this.main.doLayout();页面不显示。是不是我还得实现什么方法?

昨天犯晕了。是数据的问题。
0 请登录后投票
   发表时间:2008-12-03  
我怎么用的时提示 “缺少对象”脚本错误,

就是这一行: model = this[id](tab),

或者是“加载核心文件失败!”

是怎么回事呢?
0 请登录后投票
   发表时间:2009-04-11   最后修改:2009-04-11
//定义程序的命名空间   
Ext.namespace('demo');   
demo.module = function(main){ 
    this.main = main;   
    this.init();   
}   
  
Ext.extend(demo.module, Ext.util.Observable, {   
    init : Ext.emptyFn   
});  
demo.app = function(){    
    this.init();
}
Ext.extend(demo.app, Ext.util.Observable, {
    init: function(){       
        this.tab1 =  new Ext.Panel({
            title: '模块一',
            id: 'module1',
            layout: 'fit'
        });
        
        this.tab2 =  new Ext.Panel({
            title: '模块二',
            id: 'module2',
            layout: 'fit'
        });

        this.tab3 =  new Ext.Panel({
            title: '模块三',
            id: 'module3',
            layout: 'fit'
        });

		//系统状态栏item
		var date = new Ext.Toolbar.TextItem(new Date().toLocaleDateString() +' 星期'+'日一二三四五六'.charAt(new Date().getDay()));
		var clock = new Ext.Toolbar.TextItem('');	
			
  		this.statusbar = new Ext.Panel({			
			id: 'my-status-panel',
			region:'south',
			margins:'5 5 0 5',
			layout: 'fit',
			bbar: new Ext.StatusBar({
				id: 'my-status',				
				defaultText: '版权信息',
				items: [date,' ',clock]
			}),
				
			listeners: {
				'render': {
					fn: function(){
						Ext.fly(date.getEl().parentNode).addClass('x-status-text-panel').createChild({cls:'spacer'});
						Ext.fly(clock.getEl().parentNode).addClass('x-status-text-panel').createChild({cls:'spacer'});
									
						Ext.TaskMgr.start({
							run: function(){
								Ext.fly(clock.getEl()).update(new Date().format('H:i:s'));
							},
							interval: 1000
						});
					}
				}
			}
		});

        this.body = new Ext.TabPanel({
            region:'center',
            margins:'0 5 0 5',
            autoScroll: true,
            items: [this.tab1, this.tab2, this.tab3]
        });

        var viewport = new Ext.Viewport({
            layout:'border',
            items:[
                new Ext.BoxComponent({region:'north', el:'header', height:60}),
                this.body,
                this.statusbar
            ]
        });

        this.body.on('tabchange', this.tabActive, this);
        this.loadMask = new Ext.LoadMask(this.body.body);
        this.body.activate(this.tab1);
    },
    tabActive: function(p,t){
        if(this[t.id]){
            return false;
        }
        this.loadMask.show();
        Ext.Ajax.request({
            method:'GET',
            url: 'modules/'+t.id+'.js',
            scope: this,
            success: function(response){
                var module = eval(response.responseText);
                this[t.id] = new module(t);
                this.loadMask.hide();
            }
        });
    }
});
Ext.BLANK_IMAGE_URL = 'resources/images/default/s.gif';
Ext.onReady(function(){
    Ext.QuickTips.init();
    myApp = new demo.app();
});


提示:缺少对象。
好像是Ext.Statusbar的问题。
不知如何解决?
0 请登录后投票
   发表时间:2009-04-11   最后修改:2009-04-11
goodboy 写道
基本能够运用了,使用起来确实比使用iframe强多了,感谢搂主啊!
只是感觉不能加载Viewport,布局有点局限。

初次接触Ext,我很欣喜,一直用的很长时间,后台慢慢的就不用了,Ext的主要作用在于漂亮的美观,中大型系统中不建议使用ext来写,会带来很多的麻烦,程序员一边要关注后台的代码一边还要关注前台的ext代码,这样是吃不消的,而且目前国内的状况,既要有后台程序员又有前台UI程序员的不多,实际上很多人都在一个人写,包括我自己,这样的话我宁愿找一个美工,自己只关注后台,既省事又不必Ext差,好的美工做的web页面是Ext远远比不了的!
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics