Ext信息提示對話框

来源:http://www.cnblogs.com/glsqh/archive/2016/09/30/5920500.html
-Advertisement-
Play Games

Ext.window.MessageBox是一個工具類,他繼承自Ext.window.Windoe對象,用來生成各種風格的信息提示對話框,其實例對象可以通過Ext.MessageBox或Ext.Msg進行訪問,使用Ext.MessageBox和使用Ext.Msg有相同的效果,而後者提供了更簡短的調用 ...


  Ext.window.MessageBox是一個工具類,他繼承自Ext.window.Windoe對象,用來生成各種風格的信息提示對話框,其實例對象可以通過Ext.MessageBox或Ext.Msg進行訪問,使用Ext.MessageBox和使用Ext.Msg有相同的效果,而後者提供了更簡短的調用方式。為了描述方便後邊我們將使用Ext.MessageBox代表Ext.window.MessageBox實例對象。

/**
**Ext.MessageBox和Ext.Msg只是引用了Ext.window.MessageBox的實例對象,Ext.Msg.alert方法調用的是Ext.window.MessageBox實例對象的alert方法,
**避免混淆兩者之間的關係 *
*/

  Ext.MessageBox提供的信息提示對話框顯示的文本不僅支持純文本顯示,還支持使用HTML格式文本,採用HTML中的格式化方法進行排版,效果更佳豐富多彩 ,甚至可以在提示信息中增加動態圖標,使提示信息更加生動。

Ext.Msg.alert("提示","<font color=red>支持HTML格式文本</font>")

  標準JS提供的信息提示對話框會對JS程式的運行產生阻塞。Ext.MessageBox是非同步的,它的調用並不會停止瀏覽器中代碼的執行,如果希望在信息提示框出現並且用戶做出反饋後才能調用程式,就需要吧相應程式組成一個函數,並且將該函數作為回調函數提供給Ext.MessageBox,再用戶做出反饋後該回調函數將被調用,這樣就可以達到控製程序執行的目的了。

Ext.onReady(function(){
    alert('我會停止程式的執行。');
    Ext.Msg.alert('提示','我不會停止程式的執行。');
})

/**
**執行代碼會看到標準alert顯示,而ExtJs版的alert並沒有同事顯示出來,說明程式的執行在顯示標準alert之後被阻塞了,導致接下來的代碼並沒有執行
**/

Ext.onReady(function(){
    Ext.Msg.alert('提示','我不會停止程式的執行。');
    alert('我會停止程式的執行。');
})

/**
**執行代碼會看到標準的alert與ExtJs的alert同時出現,說明ExtJs的alert是非同步執行的,他不會阻塞程式代碼的繼續執行,
**這是他與標準alert最大的區別,會對編寫代碼的方式產生一定的影響
**/

  Ext.MessageBox.alert()

    一個只讀信息提示框,用來代替js標準的alert()方法,有一個確定按鈕,如果為其提供一個回調函數,則該函數將在單擊按鈕後被調用(不包括右上角的退出按鈕),所單擊按鈕的id將被作為唯一的參數傳遞到回調函數中

調用格式:
alert(String title, String msg ,[Function fn],[Object scope])
參數說明:
title: 提示框標題;
msg: 顯示的信息內容;
[Function fn]: (可選) 回調函數;
[Object scope]: (可選) 回調函數的作用域;

示例:
Ext.Message.alert('提示','請單擊我,確認',callBack);
function callBack(id){
    alert('單擊的按鈕ID是:'+id);
}

  Ext.MessageBox.confirm()

    顯示一個確認信息框,用來代替JS標準的confirm()方法,具有兩個按鈕"是"和"否",如果為其提供一個回調函數,則該函數將在單擊按鈕後被調用(不包括右上角的退出按鈕),所單擊按鈕的id將被作為唯一的參數傳遞到回調函數中。

    Ext.MessageBox.confirm的使用方法,與alert類似該確認對話框也是非同步執行,不會造成代碼阻塞。

調用格式:
confirm(String title, String msg ,[Function fn],[Object scope])
參數說明:
title: 提示框標題;
msg: 顯示的信息內容;
[Function fn]: (可選) 回調函數;
[Object scope]: (可選) 回調函數的作用域;

示例:
Ext.Message.confirm('提示','請單擊我,確認',callBack);
function callBack(id){
    alert('單擊的按鈕ID是:'+id);
}

  Ext.MessageBox.prompt()

    顯示一個獲取用戶輸入信息的提示框,用來代替JS標準的prompt()方法,具有兩個按鈕"確認"和"取消",並提供文本輸入框接受用戶的輸入,如果為其提供一個回調函數,則該函數將在單擊按鈕後被調用(不包括右上角的退出按鈕),所單擊按鈕的id將被作為唯一的參數傳遞到回調函數中。

調用格式:
prompt(String title, String msg ,[Function fn],[Object scope],[Boolean/Number multiline])
參數說明:
title: 提示框標題;
msg: 顯示的信息內容;
[Function fn]: (可選) 回調函數;
[Object scope]: (可選) 回調函數的作用域;
[Boolean/Number multiline]: 設置false將顯示一個單行文本域,設置為true將以預設高度顯示一個多行文本區。或者以像素為單位直接設置文本域的高度。預設flase
示例:
Ext.Message.prompt('提示','請輸入一些內容看看',callBack,this,true,"我是預設值");
function callBack(id,msg){
    alert('單擊的按鈕ID是:'+id+'/n'+'輸入的內容是:'+msg);
}

  Ext.MessageBox.wait()

    顯示一個自動滾動的進度條提示框,他經常被用在一個耗時的交互操作當中,他不能定義一個時間間隔自動關閉,程式猿有責任在交互操作完成之後去關閉它

調用格式:
wait(String msg ,[String title], [Object config])
參數說明:
msg: 顯示的信息內容;
title: 提示框標題,為可選參數;
[Object config]:用戶配置進度條的配置對象,為可選參數;

示例:
Ext.Message.wait('請等待,操作需要很長時間!','提示',{
    text:"進度條上的文字"
});

  Ext.MessageBox.show()

    基於配置來顯示新的信息提示框或重置一個已存在的信息提示框,前面介紹的3個提示框內部調用的都是這個方法,儘管那些調用的簡單快捷,但是他們並不支持所有的配置項,要簡歷更加個性化、功能更強大的提示框還需要從掌握Ext.MessageBox.show方法做起

    Ext.MessageBox.show方法支持的配置項非常豐富,不但可以配置提示標題、提示信息、回調函數等常見的部分,他還提供了配置按鈕文字及提示圖片圖標的方法,給了我們控制信息提示框的各種可能性,下邊將分別給出這些配置項,和這些配置項共分為3個列表

 

Ext.MessageBox 常用配置項表

配置項 類型 說明
title String 提示框的標題
msg String 顯示的信息內容
width   Number 對話框的寬度,單位px
maxWidth Number 對話框的最大寬度,預設600px
minWidth Number 對話框的最小寬度,預設100px
closable Boolean

false將隱藏右上角的關閉按鈕,預設為true。

如果已設置wait或者progress為true則該配置將被忽略,提示框只能通過程式關閉,不能通過右上角的關閉按鈕關閉

modal Boolean true為視窗模式,false為非模式視窗
fn   Function

回調函數,它將在點擊控制按鈕、關閉按鈕、或者輸入按鈕,離開對話框時被調用

如果已設置wait或者progress為true則該配置將被忽略

buttonId:按鈕id,如ok,yes,no,cancel

text:輸入的文字

opt:傳入show方法的配置對象

buttons Number/Boolean 按鈕組,可選值見buttons表,預設為false,不顯示任何按鈕
progress Boolean true則顯示一個進度條,預設為false,該進度條需要由程式控制滾動
progressText String 進度條上顯示的文字
proxyDrag Boolean true則顯示一個高亮的拖動代理,預設為false
wait Boolean true則顯示一個自動滾動的進度條,預設為false
waitConfig Object 等待進度條的配置對象,再wait為true時有效
prompt Boolean true則顯示一個單行文本域,預設為false
value  String 如果prompt設置為true,則value值將顯示在文本域中
multiline Boolean 如果prompt設置為true,則multiline為true顯示多行文本區,false顯示單行文本域
defaultTxetHeight Number 多行文本區的預設高度,預設值為75px
icon  String 一個樣式文件,他為對話框提供一個背景圖,詳細見icon表        

  

buttons已提供配置對象說明(區分大小寫)

提示框按鈕配置對象 顯示按鈕
Ext.Msg.CANCEL 取消
Ext.Msg.NO
Ext.Msg.OK 確認
Ext.Msg.OKCANCEL 確認、取消
Ext.Msg.YES
Ext.Msg.YESNO 是、否
Ext.Msg.YESNOCANCEL 是、否、取消

 

icon圖標樣式配置

樣式類 說明 效果描述
Ext.Msg.ERROR 錯誤圖標 紅圓 叉子
Ext.Msg.INFO 信息圖標 氣泡 I
Ext.Msg.OUESTION 問題圖標 氣泡 ?
Ext.Msg.WARNING 警告圖標 三角 !
Ext.MessageBox.show({
    title:'提示',
    msg:'我有三個按鈕,和一個多行文本區',
    modal:true,
    prompt:true,
    value:'請輸入',
    fn:callBack,
    buttons:Ext.Msg.YESNOCANCEL,
    icon:Ext.Msg.QUESTION
})
function callBack(id,msg){
    alert('單擊的按鈕ID是:'+id+'\n'+'輸入的內容是:'+msg);
}

    改變預設的按鈕文字

//這種方法會覆蓋所有的提示文字,會對設置後所有的信息提示框上的按鈕文字產生影響,如果要再次改變按鈕文字就需要多次設置
//
OK Ext.MessageBox.msgButtons[0].setText(''按鈕ok); //YES Ext.MessageBox.msgButtons[1].setText('按鈕yes'); //NO Ext.MessageBox.msgButtons[2].setText('按鈕no'); //CANCEL Ext.MessageBox.msgButtons[3].setText('按鈕cancel');

    動態更新提示框內容

var msgBox = Ext.MessageBox.show({
    title:"提示",
    msgL"動態更新的信息文字",
    modal:true,
    buttons:Ext.Msg.OK,
    fn:function(){
        //停止定時任務
        Ext.TaskManager.stop(task);
    }
})
//Ext.TaskManager是一個功能類,用來定時執行程式
//在這裡我們使用它來定時觸發提示信息的更新
var task = {
    run:function(){
        msgBox.updateText('會動的時間:'+Ext.util.Format.date(new Date(),'Y-m-d g:i:s A'))
    },
     interval:1000 
}
Ext.TaskManager.start(task);

     更新進度條及提示信息示例

var msgBox = Ext.MessageBox.show({
    title:"提示",
    msg:'動態更新的進度條和信息文字",
    modal:true,
    width:300,
    progress:true
})
var count = 0;    //滾動條被刷新的次數
var percentage = 0; //進度百分比
var progressText = ""; //進度條信息

var task = {
    run : function(){
        count++;
        //計算進度
        precentage = count/10;
        //生產進度條文字
        progressText = "當前完成度:"+percentage*100+"%";
        //更新信息提示對話框
        msgBox.updateProgress(percentage,progressText,
            '當前時間:'+Ext.util.Format.date(new Date(),'Y-m-d g:i:s A');
        )
        //刷新10次後關閉信息提示對話框
        if(count > 10){
            Ext.TaskManager.stop(task);
            msgBox.hide();
        }
    },
    interval:100
}
Ext.TaskManager.start(task);

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • × 目錄 [1]尺寸設置 [2]位置設置 前面的話 對於javascript來說,元素尺寸有scroll、offset、client三大屬性,以及一個強大的getBoundingClientRect()方法。而jQuery有著對應的更為簡便的方法。本文將詳細介紹jQuery中的元素尺寸和位置操作 尺 ...
  • 對項目的說明: 前一段時間移動端網站中要求實現一個“內容觸摸滑動”的功能,需求如下: 1. 通過點擊小圖顯示大圖; 2. 再次點擊大圖回到原來的小圖; 3. 圖片能夠滑動切換; 4. 顯示當前圖片的索引(目前我正在瀏覽哪一張圖片)。 自己寫了一些功能,完成了第 1、2 的需求,但是由於 js 基礎較 ...
  • 上圖: 聲明 字元串連接 截取字元串 轉換大小寫 字元串比較 檢索字元串 查找替換字元串 特殊字元 \b : 後退符 \t : 水平製表符 \n : 換行符 \v : 垂直製表符 \f : 分頁符 \r : 回車符 \” : 雙引號 \’ : 單引號 \ 反斜桿 特殊字元 \b : 後退符 \t : ...
  • 本系列主要記錄javascript中,新手比較容易搞錯的地方。 (1)要特別註意相等運算符==。JavaScript在設計時,有兩種比較運算符:第一種是==比較,它會自動轉換數據類型再比較,很多時候,會得到非常詭異的結果;第二種是 比較,它不會自動轉換數據類型,如果數據類型不一致,返回false,如 ...
  • 上圖 ·聲明 ·獲取時間的某部分 ·計算之前和未來的時間 ·計算兩個日期的偏移量 ·檢查有效日期 ...
  • CSS3就是出了不少高大上的功能,3D效果、動畫、多列等等。今天寫篇文章記錄怎麼一下怎麼用CSS3寫一個動畫。 醜話還得說前頭,IE9以及以下版本不支持CSS3動畫(如真要實現可以考慮用js,不過估計效果也不太好)。chrome和safafi建議加上首碼-webkit-以向前相容老版本。 今天簡單的 ...
  • 上代碼: counter-reset 屬性設置某個選擇器出現次數的計數器的值。預設為 0。 counter-increment 屬性設置某個選取器每次出現的計數器增量。預設增量是 1。 counter()插入計數器 ...
  • ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...