- 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/zh-tw/n/126790.html