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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...