Ext.Net学习笔记05:Ext.Net DirectEvents用法详解
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用法详解的更多相关文章
- 【Ext.Net学习笔记】03:Ext.Net DirectEvents用法详解、DirectMethods用法详解
Ext.Net通过DirectEvents进行服务器端异步的事件处理.[Ext.Net学习笔记]02:Ext.Net用法概览.Ext.Net MessageBus用法.Ext.Net布局 中已经简单的 ...
- Linux防火墙iptables学习笔记(三)iptables命令详解和举例[转载]
Linux防火墙iptables学习笔记(三)iptables命令详解和举例 2008-10-16 23:45:46 转载 网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能 ...
- (转)live555学习笔记10-h264 RTP传输详解(2)
参考: 1,live555学习笔记10-h264 RTP传输详解(2) http://blog.csdn.net/niu_gao/article/details/6936108 2,H264 sps ...
- 学习笔记--Grunt、安装、图文详解
学习笔记--Git安装.图文详解 安装Git成功后,现在安装Gruntjs,官网:http://gruntjs.com/ 一.安装node 参考node.js 安装.图文详解 (最新的node会自动安 ...
- SNMP学习笔记之SNMP 原理与实战详解
原文地址:http://freeloda.blog.51cto.com/2033581/1306743 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法 ...
- JQuery学习笔记系列(一)----选择器详解
笔者好长时间没有更新过博客园的笔记了,一部分原因是去年刚刚开始工作一段时间忙碌的加班,体会了一种每天加班到凌晨的充实感,之后闲暇时间了也因为自己懒惰没有坚持记笔记的习惯,现在重新拾起来. 借用古人的一 ...
- 【Java学习笔记之三十四】超详解Java多线程基础
前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧. 正文 线程与进程 1 线程:进程中负责程序执行的 ...
- HTML5学习笔记(九):选择器详解
在前面的笔记中我们已经接触过几种常见的选择器,本笔记我们将深入了解CSS的选择器. 元素选择器 最常见的 CSS 选择器是元素选择器.换句话说,文档的元素就是最基本的选择器.在 W3C 标准中,元素选 ...
- iOS5 ARC学习笔记:strong、weak等详解
2013-03-25 13:41 佚名 oschina 字号:T | T iOS5中加入了新知识,就是ARC,其实我并不是很喜欢它,因为习惯了自己管理内存.但是学习还是很有必要的.现在我们看看iOS5 ...
随机推荐
- 配置Memcache服务器并实现主从复制功能(repcached)(转)
1.repcached介绍repcached 是日本人开发的实现memcached复制功能,它是一个单 master单 slave的方案,但它的 master/slave都是可读写的,而且可以相互同步 ...
- C(n,k)在n个不重复数中获得k个数
//比如在数组a[]={1,7,89,87} 中k=2的时候 组合为 C(4,2)=6 package 再次开始; import java.util.ArrayList; //本次实现的是在n个不重复 ...
- x&-x
x&-x的值是啥米呢?列入10 二进制位 1010为2 1011则为 1,1000为8,就是一个整数对应的二进制数中1所在最低位的权值. 在树状数组中很有用
- shell截取字符串方法
shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法.${parameter:-word}${parameter:=word}${parameter:?word}${p ...
- 获取所有组合算法、获取全排列算法(java)
转载声明:原文转自:http://www.cnblogs.com/xiezie/p/5574516.html 受到ACM1015的影响,个人感觉,有必要对统计学上的 全组合和全排列 进行一个简单的总结 ...
- CF_402C Searching for Graph 乱搞题
题目链接:http://codeforces.com/problemset/problem/402/C /**算法分析: 乱搞题,不明白题目想考什么 */ #include<bits/stdc+ ...
- POJ2923--Relocation(01背包+状压dp)
果然对状压DP,我根本就不懂=.= /************************************************** Problem: 2923 User: G_lory Mem ...
- mongoDB中的连接池(转载)
一.mongoDB中的连接池 刚上手MongoDB,在做应用时,受以前使用关系型数据库的影响,会考虑数据库连接池的问题! 关系型数据库中,我们做连接池无非就是事先建立好N个连接(connection) ...
- php数组相加 两个数组键名相同 后者不能覆盖前者
array(“a”)+array(“b”)结果还是array(“a”) array(“a”)+array(“b”)的结果是 array(“a”) 因为,它们等效于array(“0″=>”a”)+ ...
- MapKit框架使用
MapKit框架使用 一.地图的基本使用 1.简介 MapKit:用于地图展示,例如大头针/路线/覆盖层展示等(着重界面展示) 使用步骤: 导入主头文件 MapKit/MapKit.h MapKit有 ...