Ext.Net通过DirectEvents进行服务器端异步的事件处理。我们在 Ext.Net用法概览 这篇中已经简单的介绍了DirectEvents,今天我们将详细的介绍一下DirectEvents。

DirectEvents异步执行服务器端事件

我们首先来看一下Ext.Net DirectEvents的一个最简单用法,通过点击按钮触发服务器端的事件处理方法,并在前台弹出一个提示框。

<ext:Window runat="server" ID="win1"
Title="Ext.Net DirectEvents"
Width="300" Height="200">
<Buttons>
<ext:Button runat="server" ID="btnOK"
Text="确定" Icon="Accept"
OnDirectClick="btnOK_DirectClick">
</ext:Button>
</Buttons>
</ext:Window>

这里添加了OnDirectEvents事件,它的一个简写方式,完整的写法如下:

<ext:Button runat="server" ID="btnOK"
Text="确定" Icon="Accept">
<DirectEvents

> <Click OnEvent="btnOK_DirectClick"></Click> </DirectEvents

>
</ext:Button>

事件处理方法如下:

protected void btnOK_DirectClick(object sender, Ext.Net.DirectEventArgs e)
{
X.MessageBox.Alert("提示", "按钮被点击").Show();
}

编译代码并刷新页面,点击按钮,我们会看到如下效果:

显示Mask遮罩层

上面的代码已经演示了如何使用DirectEvents执行服务器端的事件,DirectEvents是通过异步方式执行服务器端代码的,那么,我们通常会希望在执行的时候客户端显示一个遮罩层,阻止用户进行其他操作,这点Ext.Net已经为我们想到了。

<ext:Button runat="server" ID="btnOK"
Text="确定" Icon="Accept">
<DirectEvents>
<Click OnEvent="btnOK_DirectClick">
<

EventMask ShowMask="true" Msg="正在处理..."></EventMask

>
</Click>
</DirectEvents>
</ext:Button>

然后我们在服务器端事件处理方法中让程序休息一下:

protected void btnOK_DirectClick(object sender, Ext.Net.DirectEventArgs e)
{
System.Threading.Thread.Sleep(3000); X.MessageBox.Alert("提示", "按钮被点击").Show();
}

这样当我们再点击按钮的时候,会看到如下效果:

为事件添加自定义参数

Ext.Net DirectEvents 还允许我们为事件添加自定义参数。

<ext:Button runat="server" ID="btnOK"
Text="确定" Icon="Accept">
<DirectEvents>
<Click OnEvent="btnOK_DirectClick">
<EventMask ShowMask="true" Msg="正在处理..."></EventMask>
<ExtraParams

> <ext:Parameter Name="name" Value="btnOK"></ext:Parameter> </ExtraParams

>
</Click>
</DirectEvents>
</ext:Button>

在这里,我们将传给处理方法一个名称为name的参数,看一下服务器端的处理:

protected void btnOK_DirectClick(object sender, Ext.Net.DirectEventArgs e)
{
System.Threading.Thread.Sleep(3000);

string btnName = e.ExtraParams["name"

];
X.MessageBox.Alert("提示", btnName + "被点击").Show();
}

在服务器端,我们通过e.ExtraParams来访问这些参数。

处理服务器返回的数据

Ext.Net DirectEvents 可以通过添加一个客户端回调方法来处理服务器返回的数据。

<ext:Button runat="server" ID="btnOK"
Text="确定" Icon="Accept">
<DirectEvents>
<Click OnEvent="btnOK_DirectClick" Success="fnSuccess">
<EventMask ShowMask="true" Msg="正在处理..."></EventMask>
<ExtraParams>
<ext:Parameter Name="name" Value="btnOK"></ext:Parameter>
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>

在配置中添加一个success配置,表示在执行成功以后调用fnSuccess方法,fnSuccess方法的定义如下:

function fnSuccess(response, result) {
alert(result.extraParamsResponse.data);
}

接下来看看服务器端如何返回数据的:

protected void btnOK_DirectClick(object sender, Ext.Net.DirectEventArgs e)
{
//System.Threading.Thread.Sleep(3000); //string btnName = e.ExtraParams["name"];
//X.MessageBox.Alert("提示", btnName + "被点击").Show(); e.ExtraParamsResponse.Add(new Ext.Net.Parameter("data", "abc"));
}

通过这样的处理,我们就可以从服务器返回数据,并在客户端通过js代码进行处理了。

confirmation配置

confirmation配置是用来在触发事件之前进行提示,有用户决定是否提交服务器进行处理的。

它的用法很简单,却很实用。

<ext:Button runat="server" ID="btnOK"
Text="确定" Icon="Accept">
<DirectEvents>
<Click OnEvent="btnOK_DirectClick" Success="fnSuccess">
<EventMask ShowMask="true" Msg="正在处理..."></EventMask>
<ExtraParams>
<ext:Parameter Name="name" Value="btnOK"></ext:Parameter>
</ExtraParams>
<

Confirmation ConfirmRequest

="true"
                

Title="提示" Message

="确定要提交服务器吗?">
</Confirmation>
</Click>
</DirectEvents>
</ext:Button>

Ext.Net学习笔记05:Ext.Net DirectEvents用法详解的更多相关文章

  1. 【Ext.Net学习笔记】03:Ext.Net DirectEvents用法详解、DirectMethods用法详解

    Ext.Net通过DirectEvents进行服务器端异步的事件处理.[Ext.Net学习笔记]02:Ext.Net用法概览.Ext.Net MessageBus用法.Ext.Net布局 中已经简单的 ...

  2. Linux防火墙iptables学习笔记(三)iptables命令详解和举例[转载]

     Linux防火墙iptables学习笔记(三)iptables命令详解和举例 2008-10-16 23:45:46 转载 网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能 ...

  3. (转)live555学习笔记10-h264 RTP传输详解(2)

    参考: 1,live555学习笔记10-h264 RTP传输详解(2) http://blog.csdn.net/niu_gao/article/details/6936108 2,H264 sps ...

  4. 学习笔记--Grunt、安装、图文详解

    学习笔记--Git安装.图文详解 安装Git成功后,现在安装Gruntjs,官网:http://gruntjs.com/ 一.安装node 参考node.js 安装.图文详解 (最新的node会自动安 ...

  5. SNMP学习笔记之SNMP 原理与实战详解

    原文地址:http://freeloda.blog.51cto.com/2033581/1306743 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法 ...

  6. JQuery学习笔记系列(一)----选择器详解

    笔者好长时间没有更新过博客园的笔记了,一部分原因是去年刚刚开始工作一段时间忙碌的加班,体会了一种每天加班到凌晨的充实感,之后闲暇时间了也因为自己懒惰没有坚持记笔记的习惯,现在重新拾起来. 借用古人的一 ...

  7. 【Java学习笔记之三十四】超详解Java多线程基础

    前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧. 正文 线程与进程 1 线程:进程中负责程序执行的 ...

  8. HTML5学习笔记(九):选择器详解

    在前面的笔记中我们已经接触过几种常见的选择器,本笔记我们将深入了解CSS的选择器. 元素选择器 最常见的 CSS 选择器是元素选择器.换句话说,文档的元素就是最基本的选择器.在 W3C 标准中,元素选 ...

  9. iOS5 ARC学习笔记:strong、weak等详解

    2013-03-25 13:41 佚名 oschina 字号:T | T iOS5中加入了新知识,就是ARC,其实我并不是很喜欢它,因为习惯了自己管理内存.但是学习还是很有必要的.现在我们看看iOS5 ...

随机推荐

  1. 基于Geoserver配置多图层地图以及利用uDig来进行样式配置

    在GeoServer中配置多个图层的地图相对来说很容易,其步骤为: 1. 进入geoserver 2. 配置相关的FeatureTypes 3. 配置WMS内容,进入以后,主要有以下几个地方需要命名: ...

  2. 【HTML】Advanced6:HTML5 Forms Pt. 1: Input Types

    1.Not yet work fully on all major browsers 2.<input type="search tel url email datetime date ...

  3. 从html5标准的正式发布到国内CMS的变革

    10月底万维网联盟(W3C)宣布,经过将近8年的艰辛努力,HTML5标准规范终于最终制定完成并正式发布. W3C的正式批准让人们对HTML5更有信心.“这是一个里程碑,标志着很多人员在长达七年时间内投 ...

  4. 6个WordPress备份插件

    毫无疑问,为了保证网站的数据安全,经常备份是非常有必要的,当然手动备份比较麻烦,所以很多时候我们会使用WordPress的备份插件.Jackie Hole的<6 Top WordPress Ba ...

  5. (Step by Step)How to setup IP Phone Server(VoIP Server) for free.

    You must have heard about IP Phone and SIP (Software IP Phone).Nowadays standard PSTN phone are bein ...

  6. python seq

    missing parentheses in call to print  ==> python高版本 print("") name 'raw_input' is not d ...

  7. 关于arm处理器 内存编址模式 与 字节对齐方式 (转)

    转自:http://bavon.bokee.com/5429805.html 在x86+Linux上写的程序,在PC机上运行得很好.可是使用ARM的gcc进行交叉编译,再送到DaVinci目标板上运行 ...

  8. 关于angular的ng-class条件判断

    angular的ng-class的多条件判断是非常好用的,不需要写过多的判断去更改他相应的class, 但大家要记住,在repeat中使用ng-class多条件判断时, 错误写法:<i clas ...

  9. -bash: ls: command not found

    在iMac下ls既然command not found,查找了下 原因:在设置环境变量时,编辑profile文件没有写正确,导致在命令行下 ls等命令不能够识别.解决方案: 直接在控制台下  expo ...

  10. java中synchronized使用方法

    synchronized的一个简单样例 public class TextThread { /**  * @param args  */ public static void main(String[ ...