看了Ext的API 文檔後,開始自己嘗試做一些修改,並安裝自己項目所需寫一個小的Demo程序,再以後開發的時候可以很方便的引用進來。
本次要達到的要求:一個可定義標題內容的對話框,並要求可在5秒後自動關閉。效果如下:
這些信息窗口涉及到了Ext.MessageBox 類下的show方法中title、msg、closable屬性的設置。Ext.MessageBox 可以簡寫為Ext.Msg 這個類下面的方法和屬性設置還是挺豐富的。但是我們一般比較常用的就是show。
在這個程序中我們還用到了JS的計時函數在執行關閉。
下面看一下HTML代碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="https://www.w3.org/1999/xhtml">
<head runat="server">
<title>無標題頁</title>
<link rel="stylesheet" type="text/css" href="js/ext/resources/css/ext-all.css" _fcksavedurl=""js/ext/resources/css/ext-all.css"" _fcksavedurl=""js/ext/resources/css/ext-all.css"" _fcksavedurl=""js/ext/resources/css/ext-all.css"" _fcksavedurl=""js/ext/resources/css/ext-all.css"" />
<script type="text/javascript" src="js/ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="js/ext/ext-all.js"></script>
<!--上面3行分別是引用Ext類庫和CSS樣式-->
</head>
<body>
<form id="form1" runat="server">
<script type="text/javascript">
Ext.Msg.show({title:"信息通知",msg:"尊敬的客戶您好,您所提交的申請正在審核當中,請十五分鐘後重試,謝謝!<br /><br /> 本窗口5秒後自動關閉。",buttons:{ok:'確定',cancel:'取消'}});
</script>
<!--使用Ext.Msg.show 這個方法建立一個對話框。並定義了標題(title),對話框裡面的內容(msg),定義了2個按鈕(buttons)-->
<script type="text/javascript">
setTimeout(closeMsg,5000);
function closeMsg(){
Ext.Msg.hide();}
</script>
<!--通過時間函數執行closeMsg()這個方法,並執行了裡面包含的Ext.Msg.hide()這個方法,這個方法的作用是關閉對話框-->
</form>
</body>
</html>
這裡我也遇到了一個問題,我覺得這段代碼寫的有點不妥:
<script type="text/javascript">
setTimeout(closeMsg,5000);
function closeMsg(){
Ext.Msg.hide();}
</script>
我覺得應該可以直接這樣來執行
<script type="text/javascript">
setTimeout(Ext.Msg.hide,5000);
</script>
但是很奇怪出錯了,時間到無法執行,後面一想,5秒後執行Ext.Msg.hide那肯定是無效的,關閉對話框的方法是Ext.Msg.hide()
那好,查找了一下setTimeOut的方法,終於找到了辦法: setTimeout(「Ext.Msg.hide()」,5000); 其實這樣寫就OK了 。其實運行起來還度了2個按鈕,一個確認一個取消,其實可以直接弄成一個叫關閉即可。好了今天的簡單的例子就講到這裡。有什麼問題歡迎交流。
作者:左傾45度 2010.4.30