- 1、如何在extjs中打开一个新的界面,原先的界面还存在。
- 2、Extjs页面创建了一个窗口代码如下,请教大家如何通过itemId 来直接访问最下面的这个’保存’按钮
- 3、extjs怎么将子窗口中选中的数据传入到父页面中
- 4、ExtJs里页面初始化函数是什么?
- 5、myeclipse7.5下如何创建extjs
添加单击事件就可以了
listeners : {
‘click’ : tree_itemclick
}
————————————-
function tree_itemclick (node, event) {
var tabId = “tab-” + node.id;
var tabTitle = node.text;
var tabLink = node.attributes.url;
//alert(tabLink);
currentPage = tabId;
var centerPanel = Ext.getCmp(“mainpanel”);
var tab = centerPanel.getComponent(tabId);
var subMainId = “tab-” + node.id + “-main”;
if (!node.isLeaf()){
// 为叶子节点时,点击进入链接
event.stopEvent();
return;
}
if (!tab) { //判断MainTabPanel中是否存在这个页面,如果不存在将创建一个
tab = centerPanel
.add(new Ext.Panel(
{
id : tabId,
title : tabTitle,
autoScroll : true,
iconCls : “tabIconCss”,
layout : “fit”, //填充布局,它不会让load进来的东西改变大小
border : false,
closable : true,
//closeAction : ‘hide’,
items : [ {
showMask : true,
maskMsg : ‘正在加载数据,请稍等…’,
scripts : true,
html : “iframe scrolling=’auto’ frameborder=’0′ width=’100%’ height=’100%’ src='”
+ tabLink + “‘ /iframe”
} ]
}));
}else {
centerpanel.setActiveTab(tab);
}
centerPanel.setActiveTab(tab); //将焦点指向我点击节点打开的页面
};
你直接说要先测试是因为win.getComponent(‘btn_save’)取不到控件是吧?
这是因为buttons里的控件挂靠到的不是win,而是toolbar里,也就是这个按钮的容器不是win而是toolbar
所以正确的取法应该是win.queryById(‘btn_save’)
var win = Ext.create(“Ext.window.Window”, {
title: “卡牌编辑”,
width: 360,
height: 340,
items: {
xtype: “form”,
margin: 5,
border: false,
items: []
},
buttons: [
{ text: “保存”,
itemId : ‘btn_save’ }
],
renderTo:Ext.getBody()
}
);
win.show();
Ext.defer(function(){
win.queryById(‘btn_save’).setDisabled(true);
},5000);
实际上extjs创建的窗体就是div框,只是浮动于其他元素的上层,他实际上和主页面(按钮所在页面)是在同一个页面,不存在父窗体和子窗体的关系
当然,如果你的窗体中有iframe框就另当别论了
做法是在 按钮所在页 定义一个全局变量,在窗体中的组件选择了数据后,把这些数据放到那个全局变量里边,然后在其他地方调用这个变量就行了
数据多的话,全局变量就定义成数组或对象
如果是iframe的话
现在父窗体定义一个全局变量
然在在子窗体数据选择后把值赋给父窗体的全局变量中
window.parent.param = 子窗体变量;
然后在父窗体的其他地方就可以使用 param 这个变量了
在extjs里面的对象都有一个创建时间的问题,你在onReady直接获取是不行的,必须要等到这个对象(即组件)创建完成之后(在ext中这个叫做render)才能取到,你可以在写onReady之前定义一个全局变量var node;然后在你的tree1的定义方法里加一个监听函数:afterRender:function(tree){
node=tree.getNodeById(‘0’);//将全局变量赋值
}
直接把需要用到的Extjs库文件放到你所建的WebRoot项目下,然后页面引用ext-all.css、ext-base.js、ext-all.js,基本的extjs就可以用了 每个版本的extjs需要导入的文件有所差异
原创文章,作者:MCWTV,如若转载,请注明出处:https://www.506064.com/n/126790.html