频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

全面剖析ASP.NET 2.0中的向导控件(3)

作者: 朱先忠 出处:51CTO.com  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2006-12-29 13:24
关 键 词:.NET  ASP  控件  向导
阅读提示:ASP.NET 2.0中新引入的向导使在Web开发中,通过HTTP连接实现一个向导变得相对容易。在本文中,让我们来详细剖析这个向导控件的使用思路;同时,本文还提供了一个简单的例子供您参考。ASP.NET 2.0 Wizard控件为开发人员创建特征丰富的Web应用程序提供了一种高级“构造块”。

 

五、构建“添加新队员”向导

 

你可以看到,上面列表中并没有包括任何服务器端代码。你可以把该代码保存到一个ASPX文件中。当启动浏览器运行向导页面时,你会看到如图3所示屏幕快照。

 


图3.添加新队员数据向导

 

该向导由三步组成。首先你要收集新队员的姓名,私人信息及可选的备注信息。然后,你通过创建一个摘要页面结束此向导。然后,该向导完成该操作,保存任何数据,并且通过一个结束步骤显示最后的消息。如图3所示,你可以很容易地(以声明方式)实现校验功能以确保只有输入了正确数据时用户才能转到下一步。为此,你应该在向导视图中使用ASP.NET校验器控件以便快速进行客户端检查。如果你需要存取任何服务器端资源来校验输入信息的话,你应该使用Transition事件。

 

ASP.NET 2.0提供可定制的主题(Theme)以使你的向导更具吸引力。一个主题是一组图形化设置(式样表和控件属性),它们能够应用于页面或应用程序中所有的服务器控件上。它们提供一种很巧妙的方法把一种标准的一致性的外观应用到Web页面和控件。主题是以文本文件发布的,并且可以应用于整个应用程序中的所有页面。

你可以在向导的左上角添加一幅图像,这样可以增强视觉吸引力并且也可以传送一些额外信息,特别当你使用一个向导侧栏时(见图3)

 

你可以使用多种方法来改变这些控件的外观。为所有的按钮确定一个一致的外观的最容易的方法是定义一个NavigationButtonStyle对象。这个方法可以确保所有的按钮共用一组式样,而且还允许你通过特定的风格(例如CancelButtonStyle)逐个定制按钮。

 

你可以使用属性控制每一个按钮上的文本—还能够使用图像和可选的文本。下面的例子说明了这一点:

 

MyWizard.NextStepButtonText=">>";
MyWizard.NextStepButtonImageUrl="...";

 

【注意】如果两个属性都设置,则文本优先。在上面示例中使用的NextStepButtonXxx属性仅在普通步骤中起作用。显示于开始页面中的“下一步”按钮可以使用一组不同的属性进行定制。

 

六、向导事件

 

Wizard控件能够为你代劳一个多步骤输入过程中的许多细节操作,特别是在Web场所下。然而,对于一些核心任务仍然要求手工编码。为此,需要一个事件模型来负责通知何时向导完成一项给定任务—例如移动到下一个或前一个页面,已完成或刚启动某过程等。

 

除了任何服务器控件具有的典型事件(例如InitLoadPreRender)外,Wizard控件还提供了一些特定事件(详见MSDN)。其中,绝大多数事件与导航按钮和侧栏元素的点击事件相关。例如,当前活动视图因用户行为改变时,将引发ActiveStepChanged事件。当用户点击导航按钮时,页面发生回寄,并且在缺省页面重新初始化后,第一个被激发的服务器事件将对应于选定按钮的Click事件。然后,如果前一个调用的事件处理器导致一个视图切换,那么将触发ActiveStepChanged事件。

 

ActiveStepChanged事件所使用的代理是很简单的—EventHandler—它并不传送任何其它信息,而只是作为一个用于报告某事发生的普通通知。CancelButtonClick事件表示撤销向导,此事件也没有太多的实现细节。

 

【注意】如果用户依次通过各个向导步骤,而不是在最后一步才提交所有内容时,需要由你来编写“恢复”(即“undo”)代码—当用户选择取消动作而此时可能已经发生某些变化。

 

所有另外的事件都请求一个更丰富的代理—WizardNavigationEventHandler—它使用WizardNavigationEventArgs类来传送一些其它信息:

 

public class WizardNavigationEventArgs {
bool Cancel {get; set;}
int CurrentStepIndex {get;}
int NextStepIndex {get;}
}

 

值得注意的是,所有Click事件都发生在视图切换之前;该Click事件是你执行任何必要的校验并且对这一步作出任何决定性结论的最后机会。这里,integer型属性CurrentStepIndex指示当用户点击页面时的步骤索引值,而NextStepIndex属性指示当前事件处理结束后的新的步骤索引。这种模型非常类似于ASP.NET 1.xDataGrid的分页技术中所使用的方式。在这种上下文中,PageIndexChanged事件拥有CurrentPageIndex值和NewPageIndex属性,供你参考使用。当然,这还可以使你以编程方式改变执行步骤。

 

通过把Cancel属性设置为true,任何步骤中所作的改变都可以被抛弃。例如,你定义一个“next”按钮点击相应的处理器,那么当用户点击并看到下一个页面时,你检查输入的姓名是否是你自己提供的已有名单—此时,向导会拒绝切换到下一步骤。下面是一个示例:

 

void OnNext(object sender,WizardNavigationEventArgs e) {
if (LastName.Text == "Esposito"){
e.Cancel = true;
return;
}
}

 

为了Get/Set视图控件中的值,我们通常使用基于ASP.NET ID的语法。从技术上讲,这是可以支持的,因为所有的向导视图都是相同的页面,尽管每次仅有一个视图是活动的和可见的。

 

你可以设置任何要求的事件处理器—这可以通过使用声明方式的基于属性的ASP.NET语法,或使用.NET语言支持的代理(delegate)语法来实现。例如,下列片断展示了如何通过一个属性定义一个事件处理器:

 

 

 


共4页: 上一页 [1] [2] 3 [4] 下一页
【内容导航】
发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Java基础教程 (查看52473次)
·UML类图详解 (查看46951次)
·Java编程开发手册 (查看25172次)
·UML统一建模语言 (查看24155次)
·C#技术开发指南 (查看22515次)
·Java编程开发手册 (1195个砖)
·Java基础教程 (429个砖)
·C#技术开发指南 (304个砖)
·PB开发教程 (220个砖)
·.NET开发手册 (217个砖)
·Java编程开发手册 (653个好)
·Java基础教程 (569个好)
·.NET开发手册 (251个好)
·PB开发教程 (209个好)
·Delphi开发技术手册 (174个好)
订阅技术快讯
电子杂志下载
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
名称:2006中国IT论坛精品集合
简介:本书由“51CTO论坛推广联盟”制作完成。书中所有内容均来自各联盟成员的论坛(网站)。制作本书的目的是为了集中大家的优势资源,将更多更精彩的内容带给广大技术爱好者。本书是联盟成立以来制作的第一本书。
关键字阅读
频道精选
主编信箱 热线:010-66476606 告诉我们您想看的:专题 文章