① 如何使用extjs4 製作雙擊grid彈出窗口
給你個例子
//給grid添加雙擊事件
gridpanel.addListener('itemdblclick', click, this);
//創建WINDOW對象
var win;
click() { //雙擊GRID的方法
// var Model = gridpanel.getSelectionModel();
// var sels = Model.getSelection();
// if (typeof (sels) != 'undefined') {
// var len = sels.length;
// for ( var i = 0; i < len; i++) {
// var date = sels[i].data.DDATE;
// }
// }
if (!win) {
win = Ext.create('widget.window', {
title : '計劃單元',
closable : true,
closeAction : 'hide',
width : 800,
height : 500,
layout : 'border',
bodyStyle : 'padding: 5px;',
items : [ morefp, cenPanel, souPanel ] //ITEMS裡面是彈出窗體所包含的PANEL
});
}
win.setVisible(true); //設置可見
}
② 求EXTJS大牛解答,關於Ext.XTemplate的用法。
"點擊超鏈接可以彈出一個EXT窗口" 當然是可以實現的。
1.其實,你這個問題的原因是,你不太了解javascript的 運行期上下文 造成的,你也可以理解為 作用域或者類似於指針都可以。
比如,你這里的 a 標簽 的 onclick="this.mroeClick()" 這句代碼,你函數調用前使用了 this 限定了上下文作用域, 你觸發這個click 事件 的 這個this指向的是 <a/>標簽本身,請問你的<a/>上有定義函數mroeClick()這個函數嘛?
因為我看不到你的代碼,最簡單的能訪問到mroeClick() 的方法為 去掉this.,寫為onclick="mroeClick(),然後你需要把mroeClick()放在全局作用域里,大概你的這個函數就是放在全局作用域里的,因為大部分沒這個概念的人都是這樣做的。其實這個函數無論放在哪都是可以訪問得到的。你可以去改變訪問是的上下文對象,只要在你當前載入過的任何一個地方都可以訪問的到。
2.忘了回答你的Ext窗口了問題了。這個和上面的問題是一樣的,首先你要明白你的Ext在哪個上下文導入的,那麼Ext在那個上下文中是一個全局對象,和你當前要調用的地方的上下文是什麼關系,如果同屬於一個上下文,那麼你直接就可以Ext.Msg.alert()了,如果Ext導入的地方是現在頁面的父級,那麼你parent.Ext.Msg.alert()就可以了,其他同理,你只需要在代碼中把上下文環境切換到你要訪問的東西的那個作用域里,無論在哪裡都可以訪問得到,只要被導入過。如果你能理解上下文作用域,將會使你的前端開發水平進階。
③ html框架中如何使用 Extjs 顯示一個窗體
在main.html定義函數生成窗口,然後在end.html中寫函數調用main.html中的函數
④ 如何銷毀extjs窗體
配置closeAction:'close'屬性
API中這樣講:
closeAction:String
當關閉按鈕被點擊時執行的操作。默認的操作是'close',這將把遲則磨窗口從DOM中移除...
當關閉按鈕被點擊時執行的操作。默認的操作是'close',這將把窗口從DOM中移除並摧毀它。另一個合法的選項是'hide',這將簡單地隱藏窗口,通過設置它的visibility為hidden,並且設置一個負數偏移量。通過show方法可以讓窗口重新顯示。
⑤ extjs的方法new Ext.Window獲取返回值
後台返回的應該是json 對象字串 格式為{"success":true,"msg":"返回值"};
alert 應該 是 "上傳完成"+action.result.msg.
⑥ Extjs窗體用方法win.close的時候窗體是被隱藏了還是被銷毀了
我現在用的5.0,子窗體裡面的控制項是沒有被銷毀的。需要手動Destroy。
⑦ Extjs 怎樣關閉當前窗口
Extjs關閉窗口前有一個事件是beforeclose,當返回false時,extjs不再執行關閉操作扒臘前春清。
由於使用Ext的show方法是非同步執行,因此在非同步彈出選擇框時,仍然執行了關閉操作。
所以第一步是給局前窗口對象在 Ext.MessageBox.show 後添加
return false;
openerWin.on(beforeclose, function() {
Ext.MessageBox.show({});
return false;});第二步,在關閉對話框的yes按鈕里添加事件
openerWin.close();
此時會再次調用窗口關閉操作。
第三步,加入控制變數,判斷是否觸發了關閉操作。代碼示例:openerWin = Ext.ux.Util.createWindow({id : id,
title : appletName,
width : this.width + 10,
height : this.height + 35,
plain : true,
closable : true,
resizable : true,
html : htmlContent});
var ifclose=false;
openerWin.on(beforeclose, function() {
if(ifclose){ return true;}
Ext.MessageBox.show({
title : i18n.prompt,
msg : i18n.ldap_prompt_operation_option,
buttons : Ext.Msg.YESNO,
icon : Ext.Msg.WARNIN,
fn : function(btn) {
if (btn == 'yes') {
ifclose=true;
⑧ extjs怎麼將子窗口中選中的數據傳入到父頁面中
實際上extjs創建的窗體就是div框,只是浮動於其他元素的上層,他實際上和主專頁面(按鈕所在頁面)是在屬同一個頁面,不存在父窗體和子窗體的關系
當然,如果你的窗體中有iframe框就另當別論了
做法是在 按鈕所在頁 定義一個全局變數,在窗體中的組件選擇了數據後,把這些數據放到那個全局變數里邊,然後在其他地方調用這個變數就行了
數據多的話,全局變數就定義成數組或對象
如果是iframe的話
現在父窗體定義一個全局變數
然在在子窗體數據選擇後把值賦給父窗體的全局變數中
window.parent.param = 子窗體變數;
然後在父窗體的其他地方就可以使用 param 這個變數了
⑨ 怎麼使用EXTJS 實現點擊一個按鍵然後彈出一個窗口,並且在彈出窗口時能發送請求到伺服器然後接受
varform_panel=newExt.FormPanel({
split:false,
labelWidth:80,
frame:true,
width:275,
。。制。。。。。。
varwin=newExt.Window({
title:'登錄',
width:340,
height:230,
layout:"fit",
plain:true,
modal:true,
closeAction:"hide",
items:[form_panel]
});
win.show();
form_panel你自己完善,或者網上隨便找個
然後自己找個button,實現一下click事件,然後調用win.show()就能彈窗了
然後在調用彈窗的後面,寫個ajax調用一下後台
最後獲取完json,賦值到from表單就可以了
具體用到的函數,詳查api