EXTJS的TabPanel和Form表单求助

wangkiyo 2010-12-20 05:52:56
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)
谢谢各位,急用,如果有相关的好的学习资料也可以介绍一下
...全文
1030 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangkiyo 2011-10-04
  • 打赏
  • 举报
回复
那些,主要是都不能用.
结了吧.
demonapple 2011-08-26
  • 打赏
  • 举报
回复
楼主问的概念性问题 楼上已经回答的很准确了
如果针对某一功能或者样式 你就得描述一下 方便大家讨论
wangkiyo 2010-12-24
  • 打赏
  • 举报
回复
继续求助中...
wangkiyo 2010-12-24
  • 打赏
  • 举报
回复
这几楼顶帖盖的楼,到时候要麻烦版主大人来删除了....
为了引人注目,就必须承担风险...
flyerwing 2010-12-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 s000rd 的回复:]
1.Ext.getCmmp();
取某ID的组建的好象,与get()获取DOM元素方法区别开.
2.tab.setActiveTab(1);
tab还没有对象实例化可以直接使用吗?我试了一下,貌似不行.
必须先实例,当实例后,……
[/Quote]
估计就是这个了.
wangkiyo 2010-12-23
  • 打赏
  • 举报
回复
100分求真相都没人要么,或者哪位提供点完整的EXTJS文档,网上下载的版本都有点悲剧.
wangkiyo 2010-12-23
  • 打赏
  • 举报
回复
楼上的回答太诡异了,没办法和答案联系得上.
s000rd 2010-12-22
  • 打赏
  • 举报
回复
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加载另一的页面,另一页面直接写相关程序即可。



wangkiyo 2010-12-22
  • 打赏
  • 举报
回复
引人注目地顶帖...
ExtJS的高人都不在了吗?
100分都没人想要...我可以再加分的.
wangkiyo 2010-12-22
  • 打赏
  • 举报
回复
我现在通过 form 表单提交到一个隐藏的 iframe 中,但是没有办法更改一些 tabpanel 下的对象属性.
比如我在提交表单后设置了按钮A不可用,但是想在操作完成后让按钮A再恢复可用状态,如果没有办法直接操作 TabPanel 下的对象,便没办法处理.

是否可以绑定 ExtJS 事件到已存在的表单?


Ext.onReady(function(){
Ext.getDom("__form").on("submit",
function(){
success:function(){},
failure:function(){}
});
});
wangkiyo 2010-12-21
  • 打赏
  • 举报
回复
1.Ext.getCmmp();
如 取 ID为 'm1.窗口1' 的tabpanel下 id为 'id1'的div,要怎么写表达式呢?
2.tab.setActiveTab(1);
tab还没有对象实例化可以直接使用吗?我试了一下,貌似不行.
3.多谢,不过要再麻烦一下,当前的tabpanel下怎么再创建一个formpanel呢?
用个最简单的范例就可以了.
4.已解决
wangkiyo 2010-12-21
  • 打赏
  • 举报
回复
目前还不清楚
tab 和 myFormPanel 要怎么样得到.再麻烦说清楚一些.
leehuat 2010-12-20
  • 打赏
  • 举报
回复

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下面的了。

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧