Coolite Toolkit学习笔记二:服务器端Alert,Confirm,Prompt

简介:
一:Alert
      Alert组件最简单的用法就是直接弹出一个消息提示框:
protected   void  Button_Click( object  sender, AjaxEventArgs e)
{
    Ext.Msg.Alert(
" 标题内容 " " 消息内容 " ).Show();
}

      如果我们需要在弹出的提示框点了“确定”以后要执行其他操作怎么办呢?这时候可以使用Alert方法的重载方法,通过JFunction指定一个客户端方法,点了“确定”后就指定相应的客户端JavaScript方法,使用如下:
protected   void  Button_Click( object  sender, AjaxEventArgs e)
{
    Ext.Msg.Alert(
" 标题内容 " " 消息内容 " new  JFunction { Fn  =   " JsMethod "  }).Show();
}
< ext:Button  ID ="Button1"  runat ="server"  Text ="Submit" >
    
< AjaxEvents >
        
< Click  OnEvent ="Button_Click" ></ Click >
    
</ AjaxEvents >
</ ext:Button >
< script  type ="text/javascript" >
    
function  JsMethod() {
        alert(
" Client JsM ethod " );
    }
</ script >

      Coolite Toolkit还为Alert提供了四中图标UI效果,他们分别是问题(Question)、警告(Warning)、错误(Error)和信息(Informational),使用不同的参数将构建出不同的Alert显示风格。使用方法如下:
protected   void  Button_Alert( object  sender, AjaxEventArgs e)
{
    Ext.Msg.Show(
new  MessageBox.Config
    {
        Title 
=   " 图标提示框 " ,
        Message 
=   " 这个框带个图标 " ,
        Buttons 
=  MessageBox.Button.OK,
        Icon 
=  MessageBox.Icon.INFO,
        AnimEl 
=   this .btnAlert.ClientID
    });
}
      图标的取值可以直接通过MessageBox.Icon枚举设置,分别定义有:NONE、ERROR、INFO、QUESTION和WARNING。
                         

      除了上面的应用外,还可以通过Message.ButtonConfigs来配置Alert的高级应用,比如配置确认对话框,根据不同选择执行不同的AjaxMethod方法(下面代码里的NS为通过ScriptManager指定的客户端名称空间,其功能等同于Coolite.AjaxMethods)。
protected   void  Button_Click( object  sender, AjaxEventArgs e)
{
    Ext.Msg.Alert(
" 标题内容 " " 消息内容 " new  MessageBox.ButtonsConfig
    {
        Yes 
=   new  MessageBox.ButtonConfig
        {
            Handler 
=   " NS.DoYes() " ,
            Text 
=   " 确定 "
        },
        No 
=   new  MessageBox.ButtonConfig
        {
            Handler 
=   " NS.DoNo() " ,
            Text 
=   " 取消 "
        }
    }).Show();
}

[AjaxMethod]
public   void  DoYes()
{
    Ext.Msg.Alert(
" 操作提示 " " 你刚刚点了-确定 " ).Show();
}

[AjaxMethod]
public   void  DoNo()
{
  
  Ext.Ms g.Al ert( " 操作提示 " " 你刚刚点了-取消 " ).Show();
}

                  
注:点了“确定”后直接执
行服务端的另一方法没有实现出来,还望实现过的朋友指点,谢谢。

二:Confirm
      上面通过Coolite Toolkit的扩展功能将Alert组件实现了Confirm的效果,其实Confirm自身的功能也是非常强大的,同Alert一样,最简单的使用则是直接弹出确认对话框。
protected   void  Button_Confirm( object  sender, AjaxEventArgs e)
{
    Ext.Msg.Confirm(
" 操作提示 " " 消息内容 " ).Show();
}

      如果要知道是点击了那一个操作按扭,则同样可以通过JFunction指定一个客户端的JavaScript方法用来接收操作结果。
protected   void  Button_Confirm( object  sender, AjaxEventArgs e)
{
    Ext.Msg.Confirm(
" 操作提示 " " 消息内容 " ,
        
new  JFunction
        {
            Fn 
=   " ShowResult "
        }).Show();
}
< ext:Button  ID ="btnConfirm"  runat ="server"  Text ="Confirm" >
    
< AjaxEvents >
        
< Click  OnEvent ="Button_Confirm" ></ Click >
    
</ AjaxEvents >
</ ext:Button >
< script  type ="text/javascript" >
    
function  ShowResult(btn) {
        Ext.Msg.alert(
" 你刚刚点了按扭: "   +  btn);
    }
</ script >
      Confirm同样也可以定制根据操作调用AjaxMethod,实现方式和本文前面的Alert实现方式一样。

三:Prompt
      Prompt可应用于简单的是数据录入,Coolite Toolkit里的服务端Prompt使用非常简单,同上面Alert和Confirm一样通过JFunction指定客户端方法处理操作结果。
protected   void  Button_Prompt( object  sender, AjaxEventArgs e)
{
    Ext.Msg.Prompt(
" 数据录入 " " 请在下面录入数据 "
        
new  JFunction 
        { 
            Fn 
=   " showResultText "  
        }).Show();
}
< ext:Button  ID ="btnPrompt"  runat ="server"  Text ="Prompt" >
    
< AjaxEvents >
        
< Click  OnEvent ="Button_Prompt" ></ Click >
    
</ AjaxEvents >
</ ext:Button >
< script  type ="text/javascript" >
    
function  showResultText(button,text) {
        alert(
" 你录入的数据为: "   +  text);
    }
</ script >

      以上实现的是单行的Prompt,Coolite Toolkit也提供了多行支持,使用如下:
protected   void  Button_Prompt( object  sender, AjaxEventArgs e)
{
    Ext.Msg.Show(
new  MessageBox.Config
    {
        Title 
=   " 数据录入 " ,
        Message 
=   " 请在下面录入数据: " ,
        Width 
=   300 ,
        Buttons 
=  MessageBox.Button.OKCANCEL,
        Multiline 
=   true ,
        AnimEl 
=   this .btnPrompt.ClientID,
        Fn 
=   new  JFunction { Fn  =   " showResultText "  }
    });
}
            
      上图效果主要是通过Ext.Msg.Show()方法,通过该方法还可以定制许多我们需要的UI效果,比如说定制一个进度条效果,其实现为如下代码片段:
protected   void  Button_Wait( object  sender, AjaxEventArgs e)
{
    Ext.Msg.Show(
new  MessageBox.Config
    {
        Title 
=   " 请等待 " ,
        Message 
=   " 系统正在加载,请等待 " ,
        ProgressText 
=   " 系统加载中 " ,
        Width 
=   300 ,
        Progress 
=   true ,
        Closable 
=   false ,
        AnimEl 
=   this .btnWait.ClientID
    });
    
this .StartLongAction();
}
private   void  StartLongAction()
{
    
this .Session[ " Task1 " =   0 ;
    ThreadPool.QueueUserWorkItem(LongAction);

    
this .TaskManager1.StartTask( " Task1 " );
}
private   void  LongAction( object  state)
{
    
for  ( int  i  =   0 ; i  <   10 ; i ++ )
    {
        Thread.Sleep(
1000 );
        
this .Session[ " Task1 " =  i  +   1 ;
    }
    
this .Session.Remove( " Task1 " );
}
protected   void  RefreshProgress( object  sender, AjaxEventArgs e)
{
    
object  progress  =   this .Session[ " Task1 " ];
    
if  (progress  !=   null )
    {
        Ext.MessageBox.UpdateProgress(((
int )progress)  /  10f,  "" );
    }
    
else
    {
        
this .TaskManager1.StopTask( " Task1 " );
        Ext.MessageBox.Hide();
        
this .ScriptManager1.AddScript( " ProgressResult(); " );
    }
}

ContractedBlock.gif Code

                  



本文转自 beniao 51CTO博客,原文链接:http://blog.51cto.com/beniao/202652,如需转载请自行联系原作者

目录
相关文章
|
17天前
MessageBox 弹框 全局方法$msgbox, $alert, $confirm 和 $prompt常用代码片段
MessageBox 弹框 全局方法$msgbox, $alert, $confirm 和 $prompt常用代码片段
|
6月前
|
Web App开发 前端开发 JavaScript
SAP UI5 Simple Form 控件的使用方法介绍试读版
SAP UI5 Simple Form 控件的使用方法介绍试读版
20 0
|
9月前
|
JavaScript
Notification.description(ant-design) 和 $notify.message(element-ui) 通知内容自定义
Notification.description(ant-design) 和 $notify.message(element-ui) 通知内容自定义
242 0
|
前端开发
前端hook项目moblie总结笔记-ant design mobile Toast轻提示
前端hook项目moblie总结笔记-ant design mobile Toast轻提示
83 0
|
JavaScript 前端开发
JavaScript 浏览器交互:alert、prompt 和 confirm
JavaScript 浏览器交互:alert、prompt 和 confirm
319 0
JavaScript 浏览器交互:alert、prompt 和 confirm
|
JavaScript 前端开发
JavaScript的三种弹出提示框(alert、confirm、prompt)
JavaScript的三种弹出提示框(alert、confirm、prompt)
JavaScript的三种弹出提示框(alert、confirm、prompt)
|
JavaScript
element ui 自定义主题失败(primordials is not defined)
最近在使用Element ui 自定义主题时,遇到了问题,就是一直提示primordials is not defined。简言之,就是node版本的问题。所以需要降低node版本。
SAP ui5 shell open loading dialog
Created by Wang, Jerry, last modified on May 15, 2015
SAP ui5 shell open loading dialog