Chinaunix首页 | 论坛 | 博客

acc

  • 博客访问: 791671
  • 博文数量: 170
  • 博客积分: 7011
  • 博客等级: 少将
  • 技术积分: 1660
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-31 12:02
文章分类

全部博文(170)

文章存档

2014年(7)

2010年(2)

2009年(62)

2008年(25)

2007年(67)

2006年(7)

我的朋友

分类: Java

2009-09-03 09:46:44

 由于传统使用alert、confirm 等方法产生的对话框非常古板,不好看。因此,ExtJS 提供了一套非常漂亮的对话框,可以使用这些对话框代替传统的alert、confirm 等,实现华丽的应用程序界面。

1、Alert

    Ext 的对话框都封装在Ext.MessageBox 类,该类还有一个简写形式即Ext.Msg,可以直 接通过Ext.MessageBox 或Ext.Msg 来直接调用相应的对话框方法来显示Ext 对话框。看下 面的代码:

 /// 

Ext.onReady(function(){
    Ext.get("btnAlert").on("click",function(){
        Ext.MessageBox.alert("请注意","这是ExtJS的提示框");
    });
});

    Html 页面中的内容:

 

    执行程序,点击上面的“alert 框”按钮,将会在页面上显示如下图所示的对话框。

2、Confirm

    除了alert 以外,Ext 还包含confirm、prompt、progress、wait 等对话框,另外我们可以根据需要显示自下定义的对话框。普通对话框一般包括四个参数,比如confirm 的方法签 名为confirm ( String title, String msg, [Function fn], [Object scope] ) ,参数title 表示对话框的标题,参数msg 表示对话框中的提示信息,这两个参数是必须的;可选的参数fn 表示当关 闭对话框后执行的回调函数,参数scope 表示回调函数的执行作用域。回调函数可以包含两 个参数,即button 与text,button 表示点击的按钮,text 表示对话框中有活动输入选项时输 入的文本内容。我们可以在回调函数中通过button 参数来判断用户作了什么什么选择,可 以通过text 来读取在对话框中输入的内容。看下面的例子:

 Ext.onReady(function(){
    Ext.get("btn").on("click",function(){
        Ext.MessageBox.confirm("请确认","是否真的要删除指定的内容",function(button){
        if(button=='yes')
            Ext.MessageBox.alert("提示","删除成功!");
        else
            return;
    });
    });
});

    Html 页面中的内容:

 

    点击对话框按钮将会出现下面的对话框,这样当用户点击对话框中的yes 按钮时,就会执行相应的操作,而选择no 则忽略操作。

3、Prompt

    下面再看看prompt 框,我们看下面的代码:

 Ext.onReady(function(){
    Ext.get("btn").on("click",function(){
        Ext.MessageBox.prompt("输入提示框","请输入你的新年愿望:",function(button,text){
        if(button=="ok"){
            Ext.MessageBox.alert("提示","你的新年愿望是:"+text);
        }
        else
            Ext.MessageBox.alert("提示","你放弃了录入!");
        });
    });
});

    Html 页面中的内容:

 

    点击上面的“对话框”按钮可以显示如下图所示的内容,如果点击OK 按钮则会输入你输入的文本内容,选择cancel 按钮则会提示放弃了录入,如下图所示:

4、Multi-line Prompt

    下面再看看prompt 框,我们看下面的代码:

 Ext.onReady(function(){
    Ext.get('btn').on('click', function(e){
        Ext.MessageBox.show({
           title: 'Address',
           msg: 'Please enter your address:',
           width:300,
           buttons: Ext.MessageBox.OKCANCEL,
           multiline: true,
           fn: showResultText,//这里没有给绌这个函数
           animEl: 'btn'
       });
    });
});

    Html 页面中的内容:

 

    点击上面的“对话框”按钮可以显示如下图所示的内容:

5、Yes/No/Cancel

    在实际应用中,可以直接使用MessageBox 的show 方法来显示自定义的对话框,如下面的代码:

 Ext.onReady(function(){
    Ext.get("btn").on("click",function(){
        Ext.Msg.show({
            title:'保存数据',
            msg: '你已经作了一些数据操作,是否要保存当前内容的修改?',
            buttons: Ext.Msg.YESNOCANCEL,
            fn: save,
            icon: Ext.MessageBox.QUESTION});
    });
});

function save(button)
{
    if(button=="yes")
    {
    //执行数据保存操作
    } else if(button=="no")
    {
    //不保存数据
    } else
    {
    //取消当前操作
    }
}

    点击“对话框”按钮可显示一个自定义的保存数据对话框,对话框中包含yes、no、cancel三个按钮,可以在回调函数save 中根据点击的按钮执行相应的操作,如下图所示:

    把上面最后一例的对话框按钮汉化如下面的代码:

 Ext.onReady(function(){
    Ext.get("btn").on("click",function(){
        ShowMessageBox('保存数据','你已经作了一些数据操作,是否要保存当前内容的修改?',
        Ext.Msg.YESNOCANCEL,save,Ext.MessageBox.QUESTION);
    });
});

function save(button)
{
    if(button=="yes")
    {
    //执行数据保存操作
    } else if(button=="no")
    {
    //不保存数据
    } else
    {
    //取消当前操作
    }
}

function ShowMessageBox(title, message, button, callBack, icon) {
    Ext.MessageBox.buttonText.ok = '确定';
    Ext.MessageBox.buttonText.yes = '是';
    Ext.MessageBox.buttonText.no = '否';
    Ext.MessageBox.buttonText.cancel = '取消';
    Ext.MessageBox.show({
        title: title,
        msg: message,
        buttons: button,
        fn: callBack,
        icon: icon
    });
};

    点击“对话框”按钮可显示一个自定义的保存数据对话框,对话框中包含‘是’、’否‘、‘取消’三个按钮,可以在回调函数save 中根据点击的按钮执行相应的操作,如下图所示:

阅读(1946) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~