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. Monkey的简单自动化

    手机测试都逃避不了Monkey,但每次都是手动跑Monkey,自己导出包来,一条条的手动输入命令. 现在轮到我去执行这些任务,觉得很是繁琐,于是写了这个脚本,自动读取导出的包名,一键回车搞定. 代码如 ...

  2. Linux查看系统性能命令

    性能调优的第一步是性能分析,下面从性能分析着手进行一些介绍,尤其对linux性能分析工具vmstat的用法和实践进行详细介绍. ———————————————————————————————————— ...

  3. Linux下platform设备以及platform设备和驱动注册的先后顺序

    platform是Linux系统提供的一种管理设备的手段,所有SOC系统中集成的独立的外设控制器.挂接在SOC内存空间的外设等都属Platform设备.如ARM S3C6410处理器中,把内部集成的I ...

  4. 教程-delphi的开源json库:superobject,用法简介

    困惑一天的问题 一个语句搞定了... 回头细说. superobject中的{$DEFINE UNICODE} 就是它,这是json官方推荐的Delphi处理json的包,地址: http://www ...

  5. sqlplus 连接数据库报错SP2-0642: SQL*Plus internal error state 2130, context 0:0:0

    sqlplus 连接数据库报错SP2-0642: SQL*Plus internal error state 2130, context 0:0:0 问题描述: 使用sqlplus客户端登录数据库,报 ...

  6. 联通超级战舰W910 Root 后不能 上网 解决方案

    联通版的超级战舰w910root后不能上网,一下是root方法: 超级战舰W910 Root方法: 电脑上安装“刷机精灵”(http://www.shuame.com/ ),在手机“菜单”——“系统设 ...

  7. ibm rational software architect download

    keep secret: rational software architect download: http://public.dhe.ibm.com/software/rationalsdp/v8 ...

  8. Java从设计模式[本场比赛状态转换武器]状态分析(State)模式

    如果我们正在做一个实时战略游戏.我们设计了一个武器,他制作只是当步兵,但他能够切换武器.第一个开关会变成弓箭手,第二个开关导通控股装甲盾牌,第三开关变成步兵--如何实现这一目标切换机构?我们开始思考, ...

  9. 【转】获取Sprite的实际Rect

    判断点击是否点击在了一个精灵上, 其实就是判断一个点是否在一个矩形内. cocos2d-x的2.0.2版本可以使用CCRect的函数 bool CCRect::containsPoint(const ...

  10. FastJSON应用前测试--转载

    FastJSON 应用前测试   FastJSON是一个很好的java开源json工具类库,相比其他同类的json类库,它的速度的确是fast,最快!但是文档做得不好,在应用前不得不亲测一些功能.   ...