Ext.Net系列:二Event之DirectEvents
笔者认为学习任何一门技术一组控件一个框架,无外乎四步走。第一步阅读官方示例,查看示例实现代码。第二步使用该技术完成一个小项目,在实现项目的具体功能时参考相似的官方示例且结合自身相似性理解和Baidu Google一下便能初步使用该技术。第三步:寻找主要使用该技术实现的开源产品并进行研究,总结其中比较优秀的思想和技术运用模式,撰写文章以此熟悉该技术。到了这一步在日常开发中便能独自使用该技术。第四步:钻研源代码,研究该技术的实现原理 。完成了这一步便是高手。
反观自己以前的学习方式,对许多技术总是只做到了第一步,只能初步的使用该技术而不敢学熟悉精通。现在发现自己真的什么都知道什么都不精通。悲哀的过去,是该停止了,所有开始写教程和大家一起学习,希望大家支持与包容!
Ext.Net中与Ajax交互主要是控件的各种事件,事件贯穿整个生命圈。我们开始学习Ext.Net,便从Event开始。
Event分三类:DirectEvent、DirectMethod(方法属性)和Listener。今天我们只讲DirectEvent
1、DirectEvent属性
属性名称 | 描述 | 默认值 |
After |
执行该JS方法后立即响应服务器事件 方法参数: el:触发事件的对象, extraParams:参数对象 |
"" |
Before |
响应服务器事件之前执行的JS方法 方法参数: el:触发事件的对象, extraParams:参数对象 type:类型 (event) action:行为(click,dbclick) extraParams:参数对象 |
"" |
Failure |
响应服务器事件之后如果失败则执行该JS方法 方法参数: response:响应信息对象 result: 响应结果对象 control:触发该服务器事件的对象 type:类型 action:行为 extraParams:参数对象 |
"" |
Success |
响应服务器事件之后如果失败则执行该JS方法 方法参数: response:响应信息对象 result: 响应结果对象 control:触发该服务器事件的对象 type:类型 action:行为 extraParams:参数对象 |
"" |
Complete |
响应服务器事件后作为最后执行的标识整个响应完成的JS方法 方法参数: success:是否成功 response:响应信息对象 result: 响应结果对象 control:触发该服务器事件的对象 type:类型 action:行为 extraParams:参数对象 |
"" |
CleanRequest |
如果为True则在发送Request请求时添加额外的参数 在ExtraParams集合中 |
true |
Delay |
响应延缓时间,单位:毫秒 |
20 |
DisableCaching |
如果值为true则在请求的URL上添加由 DisableCachingParam属性值作为参数名,值为当前时间time的参数 |
true |
DisableCachingParam |
启用缓存时作为URl上添加的Get参数名称。 |
_dc |
FormId |
如果不为空则使用该表单,否则使用该页面的带有runat="server"的表单,如果没有runat="server"的表单则使用当前页面的URL的配置信息submitDirectEventConfig |
"" |
IsUpload |
标识该表单是否为文件上传 |
false |
Json |
不清楚,希望知道的朋友回复! | |
Method |
表单Method。 Default, GET, POST, OPTIONS, HEAD, PUT, DELETE, TRACE, CONNECT |
Default |
Normalized |
如果为false在响应事件时传递到浏览器事件处理函数对象为Ext.EventObject |
false |
Scope |
响应的上下文对象。 指定为其他标签时可填写为 “${ID}” |
this |
PreventDefault |
是否阻止默认的action |
false |
ShowWarningOnFailure |
是否窗口显示错误信息 |
true |
Single |
事件是否只执行第一次并移除事件 |
false |
Timeout |
请求超时时间。单位毫秒 |
30000 |
Type |
提交方式。Submit 或者是Load Submit将提交Form表单 Load请向URL属性指定的url发生请求。如果没有制单URL属性则向当前页面发生请求 |
Submit |
Url |
发送请求的URL .如果为空则指向本页面URL |
"" |
ViewStateMode |
保存视图模式 继承 Inherit 禁用:Disabled 启用:Enabled |
Inherit |
2.DirectEvent示例
DirectEvent一般分两种方式进行注册。第一种集中在页面ResourceManager的CustomDirectEvents下,第二种是单个注册到具体控件中
采用第一种方式的好处是可以为多个标签注册事件,而无需在每一个需要注册事件的控件下重复实现相同事件。同时也能将事件注册到非Ext.Net控件下包括所有HTML标签
示例1:
<script runat="server"> protected void UpdateTime(object sender, DirectEventArgs e) { X.Msg.Alert("当前时间是:", DateTime.Now.ToString("yyyy-MM-dd hh:mm:dd ss:ms")).Show(); } </script> <form id="form1" runat="server" > <!--Target 可以是标签的ID也可以是一个集合。 当Target是一个ID时采用Ext.get("id")获取元素当Target是一个集合时采用Ext.select("filter")获取元素 --> <ext:ResourceManager ID="ResourceManager1" runat="server"> <CustomDirectEvents> <ext:DirectEvent Target="${input1}" OnEvent="UpdateTime" /> <ext:DirectEvent Target="btn1" OnEvent="UpdateTime"/> <ext:DirectEvent Target="${[class='showTime']}" OnEvent="UpdateTime" /> </CustomDirectEvents> </ext:ResourceManager> <ext:Button ID="btn1" runat="server" Text="点击弹出时间窗口" /> <input id="input1" type="button" value="点击弹出时间窗口" /> <div> <a href="#" class="showTime">超链接</a> <input type="button" value="按钮" class="showTime" /> <span class="showTime">span元素</span> </div> </form>
Ext.Net系列:二Event之DirectEvent 示例1-调用事件顺序