Ext.extend(MainPanel, Ext.TabPanel, {    initEvents : function(){
        MainPanel.superclass.initEvents.call(this);
        this.body.on('click', this.onClick, this);
    },    onClick: function(e, target){
        if(target = e.getTarget('a:not(.exi)', 3)){
            var cls = Ext.fly(target).getAttributeNS('ext', 'cls');
            e.stopEvent();
            if(cls){
                var member = Ext.fly(target).getAttributeNS('ext', 'member');
                this.loadClass(target.href, cls, member);
            }else if(target.className == 'inner-link'){
                this.getActiveTab().scrollToSection(target.href.split('#')[1]);
            }else{
                window.open(target.href);
            }
        }else if(target = e.getTarget('.micon', 2)){
            e.stopEvent();
            var tr = Ext.fly(target.parentNode);
            if(tr.hasClass('expandable')){
                tr.toggleClass('expanded');
            }
        }
    },    loadClass : function(href, cls, member, text){
        var id = 'docs-' + cls;
        var tab = this.getComponent(id);
        if(tab){
     tab.getUpdater().update(href,true);
            this.setActiveTab(tab);
            if(member){
                tab.scrollToMember(member);
            }
        }else{
            var autoLoad = {url: href,scripts:true};
            if(member){
                autoLoad.callback = function(){
                    Ext.getCmp(id).scrollToMember(member);
                }
            }
            var p = this.add(new DocPanel({
                id: id,
                cclass : cls,
text : text,
                autoLoad: autoLoad,
                iconCls: Docs.icons[cls]
            }));
            this.setActiveTab(p);
        }
    }, doSearch : function(e){
var k = e.getKey();
if(!e.isSpecialKey()){
var text = e.target.value;
if(!text){
this.searchStore.baseParams.q = '';
this.searchStore.removeAll();
}else{
this.searchStore.baseParams.q = text;
this.searchStore.reload();
}
}
}
});刚用extjs,很多地方都找不到答应,麻烦大大们了.
想问:
1.怎么通过javascript获取其它标签下的对象(或者DOM元素)
2.怎么通过javascript设置标签切换
3.怎么样添加一个formpanel(或者basicform),然后ajax提交结果
4.怎么样指定一个form表单提交的target是当前窗格(tabpanel)
谢谢各位,急用,如果有相关的好的学习资料也可以介绍一下

解决方案 »

  1.   


    Ext.getCmmp();tab.setActiveTab(1);myFormPanel.getForm().submit({
        clientValidation: true,
        url: 'updateConsignment.php',
        params: {
            newStatus: 'delivered'
        },
        success: function(form, action) {
           Ext.Msg.alert('Success', action.result.msg);
        },
        failure: function(form, action) {
            switch (action.failureType) {
                case Ext.form.Action.CLIENT_INVALID:
                    Ext.Msg.alert('Failure', 'Form fields may not be submitted with invalid values');
                    break;
                case Ext.form.Action.CONNECT_FAILURE:
                    Ext.Msg.alert('Failure', 'Ajax communication failed');
                    break;
                case Ext.form.Action.SERVER_INVALID:
                   Ext.Msg.alert('Failure', action.result.msg);
           }
        }
    });
    formpanel 放在tabpanel里面 提交不就是当前的tabpanel下面的了。
      

  2.   

    1.Ext.getCmmp();
    如 取 ID为 'm1.窗口1' 的tabpanel下 id为 'id1'的div,要怎么写表达式呢?
    2.tab.setActiveTab(1);
    tab还没有对象实例化可以直接使用吗?我试了一下,貌似不行.
    3.多谢,不过要再麻烦一下,当前的tabpanel下怎么再创建一个formpanel呢?
    用个最简单的范例就可以了.
    4.已解决
      

  3.   

    目前还不清楚
    tab 和 myFormPanel 要怎么样得到.再麻烦说清楚一些.
      

  4.   

    引人注目地顶帖...
    ExtJS的高人都不在了吗?
    100分都没人想要...我可以再加分的.
      

  5.   

    1.Ext.getCmmp();
    如 取 ID为 'm1.窗口1' 的tabpanel下 id为 'id1'的div,要怎么写表达式呢?是Ext.getCmp();这个取ext控件的,如果去dom元素,直接Ext.getDom('id1')即可2.tab.setActiveTab(1);
    tab还没有对象实例化可以直接使用吗?我试了一下,貌似不行.必须先实例,当实例后,直接调用Ext.getCmp('tabpanel的id').setActiveTab('新实例的tab标签id');
    3、最简单的方式在tabpanel里html标签,里面加载iframe,然后iframe加载另一的页面,另一页面直接写相关程序即可。
      

  6.   

    我现在通过 form 表单提交到一个隐藏的 iframe 中,但是没有办法更改一些 tabpanel 下的对象属性.
    比如我在提交表单后设置了按钮A不可用,但是想在操作完成后让按钮A再恢复可用状态,如果没有办法直接操作 TabPanel 下的对象,便没办法处理.是否可以绑定 ExtJS 事件到已存在的表单?
    Ext.onReady(function(){  
    Ext.getDom("__form").on("submit",
    function(){
    success:function(){},
    failure:function(){}
    });  
    });
      

  7.   

    100分求真相都没人要么,或者哪位提供点完整的EXTJS文档,网上下载的版本都有点悲剧.