Ext.Net学习笔记02:Ext.Net用法概览
这两天越来越觉得Ext.Net很强大,如果运用熟练可以极大的提高编程效率。如果你也要学习Ext.Net,推荐你看一下《Ext.Net Web 应用程序开发教程》。
Ext.Net与ExtJS代码比较
上一篇中我们创建了一个使用Ext.Net创建了一个window窗口,代码非常简单:
<ext:Window runat="server"
ID="win"
Title="示例窗口"
Width="300"
Height="200"
AutoShow="true">
</ext:Window>
如果我们使用ExtJS代码来创建这个窗口,代码会是什么样的呢?请看下面:
Ext.create("Ext.window.Window", {
id:"win2",
title: "示例窗口2",
height: 200,
width: 300,
autoShow: true
});
看这两段代码是不是很像,Ext.Net只是将ExtJS的配置属性进行了封装,作为空间的属性,可以在Visual Studio中进行非常友好的智能提示,效率提升不止一倍啊。
另外,Ext.Net还支持控件的嵌套定义,跟ExtJS中的items配置项、buttons配置项一样,请看下面的代码:
<ext:Window runat="server"
ID="win"
Title="示例窗口"
Width="300"
Height="200"
Layout="FitLayout"
AutoShow="true">
<Items>
<ext:FormPanel runat="server" ID="extForm" BodyPadding="5">
<Items>
<ext:TextField runat="server" ID="txtName" FieldLabel="姓名"></ext:TextField>
<ext:NumberField runat="server" ID="txtAge" FieldLabel="年龄"></ext:NumberField>
</Items>
<Buttons>
<ext:Button runat="server" ID="btnSave"
Icon="DatabaseSave" Text="保存">
</ext:Button>
</Buttons>
</ext:FormPanel>
</Items>
</ext:Window>
这仍然是我们的window,新的效果如下:

很酷吧,接下来我们一起看看它的事件机制。
Ext.Net的事件处理
Ext.Net中的事件分为客户端事件和服务器端事件,客户端事件需要页面中JS来处理,服务器端事件则会无刷新的提交给服务器,在服务器处理完成并将结果显示在页面中。
拿我们上面窗口中的保存按钮为例,我们来介绍一下如何处理客户端事件。
客户端事件处理
首先,我们来添加一个客户端的单击事件:
<ext:Button runat="server" ID="btnSave"
Icon="DatabaseSave" Text="保存">
<Listeners>
<Click Handler="Ext.MessageBox.alert('提示', '保存按钮被单击')" />
</Listeners>
</ext:Button>
跟ExtJS中的写法一样,使用listeners来添加事件。当我们在Listeners标签中输入左尖括号以后,visual studio 会提示我们所有可用的事件:

这种编程方式实在是太快了,效率完全可以达到ExtJS熟练的水平(题外话,套用一句广告词:根本停不下来……)。
Handler 属性保存一段JS代码,如果要添加一个处理方法,则需要使用Fn属性:
<ext:Button runat="server" ID="btnSave"
Icon="DatabaseSave" Text="保存">
<Listeners>
<Click Fn="fnSave" />
</Listeners>
</ext:Button>
注意,使用Fn属性的时候,需要确保我们的页面中已经定义了fnSave方法:
function fnSave() {
//此处添加保存的处理逻辑
Ext.MessageBox.alert('提示', '保存按钮被单击')
}
此处只使用了click事件,完整是事件列表可以参考ExtJS API文档。
服务器端事件处理
既然使用了Ext.Net服务器控件,恐怕大家更希望使用服务器端事件吧。Ext.Net服务器事件需要在DirectEvents中定义,它是Ext.Net独有的。DirectEvents将被回发到服务器进行处理,并将处理结果展示在页面中(如果有更新页面的话)。
来看一下DirectEvents
<ext:Button runat="server" ID="btnSave"
Icon="DatabaseSave" Text="保存">
<DirectEvents>
<Click OnEvent="btnSave_DirectClick"></Click>
</DirectEvents>
</ext:Button>
对应的服务器处理方法如下:
protected void btnSave_DirectClick(object sender, DirectEventArgs e)
{
X.MessageBox.Alert("提示", "保存按钮被单击").Show();
}
如果我们需要在执行服务器端处理的时候显示遮罩层,可以在Click中添加配置节点:
<ext:Button runat="server" ID="btnSave"
Icon="DatabaseSave" Text="保存">
<DirectEvents>
<Click OnEvent="btnSave_DirectClick">
<
EventMask ShowMask="true" Msg
="正在加载..." />
</Click>
</DirectEvents>
</ext:Button>
另外,Ext.Net Direct Events还可以传递自定义参数:
<ext:Button runat="server" ID="btnSave"
Icon="DatabaseSave" Text="保存">
<DirectEvents>
<Click OnEvent="btnSave_DirectClick">
<ExtraParams>
<
ext:Parameter Name="param1" Value
="自定义参数值" />
</ExtraParams>
<EventMask ShowMask="true" Msg="正在加载..." />
</Click>
</DirectEvents>
</ext:Button>
在服务器端的处理方法中,我们可以轻易的获取到这个参数值:
protected void btnSave_DirectClick(object sender, DirectEventArgs e)
{
string param1 = e.ExtraParams["param1"
];
X.MessageBox.Alert("提示", "保存按钮被单击,传入的参数值:" + param1).Show();
}
Ext.Net中的DirectEvents所支持的事件类型同样可以参考ExtJS的API文档。
Ext.Net学习笔记02:Ext.Net用法概览的更多相关文章
- 【Ext.Net学习笔记】02:Ext.Net用法概览、Ext.Net MessageBus用法、Ext.Net布局
Ext.Net用法概览 Ext.Net还是很强大,如果运用熟练可以极大的提高编程效率.如果你也要学习Ext.Net,原文博主推荐书籍:<Ext.Net Web 应用程序开发教程>,是英文的 ...
- 【Ext.Net学习笔记】03:Ext.Net DirectEvents用法详解、DirectMethods用法详解
Ext.Net通过DirectEvents进行服务器端异步的事件处理.[Ext.Net学习笔记]02:Ext.Net用法概览.Ext.Net MessageBus用法.Ext.Net布局 中已经简单的 ...
- 【Ext.Net学习笔记】06:Ext.Net GridPanel的用法(GridPanel 折叠/展开行、GridPanel Selection、 可编辑的GridPanel)
GridPanel 折叠/展开行 Ext.Net GridPanel的行支持折叠/展开功能,这个功能个人觉得还说很有用处的,尤其是数据中包含图片等内容的时候. 下面来看看效果: 使用行折叠/展开功能之 ...
- 【Ext.Net学习笔记】05:Ext.Net GridPanel的用法(包含Filter、Sorter、Grouping、汇总(Summary)的用法)
GridPanel是用来显示数据的表格,与ASP.NET中的GridView类似. GridPanel用法 直接看代码: <ext:GridPanel runat="server&qu ...
- 【Ext.Net学习笔记】04:Ext.Net中使用数据、Ext.Net Store的用法、Ext.Net ComboBox用法
之前的几篇文章都是介绍Ext.Net较为基础的东西,今天的这一篇将介绍数据的一些用法,包括XTemplate绑定数据.Store(Modal.Proxy).ComboBox的用法等. XTemplat ...
- Ext.Net学习笔记22:Ext.Net Tree 用法详解
Ext.Net学习笔记22:Ext.Net Tree 用法详解 上面的图片是一个简单的树,使用Ext.Net来创建这样的树结构非常简单,代码如下: <ext:TreePanel runat=&q ...
- Ext.Net学习笔记23:Ext.Net TabPanel用法详解
Ext.Net学习笔记23:Ext.Net TabPanel用法详解 上面的图片中给出了TabPanel的一个效果图,我们来看一下代码: <ext:TabPanel runat="se ...
- Ext.Net学习笔记19:Ext.Net FormPanel 简单用法
Ext.Net学习笔记19:Ext.Net FormPanel 简单用法 FormPanel是一个常用的控件,Ext.Net中的FormPanel控件同样具有非常丰富的功能,在接下来的笔记中我们将一起 ...
- Ext.Net学习笔记20:Ext.Net FormPanel 复杂用法
Ext.Net学习笔记20:Ext.Net FormPanel 复杂用法 在上一篇笔记中我们介绍了Ext.Net的简单用法,并创建了一个简单的登录表单.今天我们将看一下如何更好是使用FormPanel ...
随机推荐
- 2DPlatformer-SLua 编辑器 UI 美化
在我的开源项目 2DPlatformer-SLua 中,YwLuaMonoBehaviour 是非常重要的一个组件,它负责从 MonoBehaviour 中直接驱动内建的事件到 Lua 中的类和逻辑, ...
- AABB碰撞盒
矩形边界框(转) 另一种常见的用来界定物体的几何图元是矩形边界框,矩形边界框可以是与轴对齐的或是任意方向的.轴对齐矩形边界框有一个限制,就是它的边必须垂直于坐标轴.缩写AABB常用来表示axially ...
- HW5.20
public class Solution { public static void main(String[] args) { System.out.printf("%s\t%s\t%s\ ...
- HW3.27
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- php&mysql
更新语句 $query='update num set num='.$counter.'where id=1'; ....................这个查询失败 $query='upd ...
- Powerdesigner设置表结构对齐方式
- 程序员提高工作效率的15个技巧【Facebook】
程序员提高工作效率的15个技巧[Facebook] 作者: habadog 日期: 2015 年 02 月 13 日发表评论 (0)查看评论 程序员提高工作效率的15个技巧[Facebook] 1,D ...
- 第二步 在D2RQ平台上配置jena环境
第二步 在D2RQ平台上配置jena环境 2013年10月16日 9:48:53 搞了这么长时间语义,只用过protege这样的工具,一直没有落实到实际代码上.jena也看过好久了,总认为是hp公司的 ...
- linux-多线程
一.什么是线程? 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立执行的基本单位.线程自己基本上不拥有系统资源,仅仅拥有一点在执行中不可缺少的资源(如程序计数器,一组寄存器和 ...
- hdu2565java
放大的X Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissio ...