如何利用DevExpress ASPxSchedulerForms创建自定义约会表单

原创|行业资讯|编辑:郝浩|2012-09-28 10:54:25.000|阅读 398 次

概述:本文将一步一步第教您如何创建一个自定义约会编辑表单,并且该表单中包含了编辑自定义字段所需的控件。

本文将一步一步第教您如何创建一个自定义约会编辑表单,并且该表单中包含了编辑自定义字段所需的控件。

第1步:为非标准的约会字段添加自定义字段映射,非标准的约会字段的数据源中有“Amount”和“Memo”名称。

[C#]

Storage.Appointments.CustomFieldMappings.Add(new ASPxAppointmentCustomFieldMapping("Field1","Amount"));

Storage.Appointments.CustomFieldMappings.Add(new ASPxAppointmentCustomFieldMapping("Field2","Memo"));

[VB.NET]

Storage.Appointments.CustomFieldMappings.Add(New ASPxAppointmentCustomFieldMapping("Field1","Amount"))

Storage.Appointments.CustomFieldMappings.Add(New ASPxAppointmentCustomFieldMapping("Field2","Memo"))

第2步:复制~DevExpress\ASPxSchedulerForms\AppointmentForm.ascx和AppointmentForm.ascx.cs到MyForms文件夹
将它们重命名为UserAppointmentForm。

第3步:AppointmentFormTemplateUrl的属性更改为指向该表单模板新位置的值——~/MyForms/UserAppointmentForm.ascx。

第4步:将UserAppointmentForm页面开始处的“不要修改DO NOT MODIFY)...”警告删除。

第5步:根据需要将新控件添加到该表单。就我们而言,需要添加的新控件为ASPxTextBox控件(ID设置为tbField1)和ASPxMemo控件(ID设置为memField2)。

第6步:添加一个新的类定义文件到App_Data文件夹。将其命名为“UserAppointmentFormClass.cs”。

第7步:在该文件中定义一个公共类——DevExpress.Web.ASPxScheduler.AppointmentFormTemplateContainer
AppointmentFormTemplateContainer类继承的UserAppointmentFormTemplateContainer。它将提供来自自定义字段的数据,显示在页面上。您可根据实际需要对数据进行调整,使数据显示适当。

第8步:处理AppointmentFormShowing事件,将您的自定义表单指定为目标容器(而非默认容器)。

[C#]

protected void ASPxScheduler1_AppointmentFormShowing(object sender, AppointmentFormEventArgs e) {

e.Container = new UserAppointmentFormTemplateContainer((ASPxScheduler)sender);

}

[VB.NET]

Protected Sub ASPxScheduler1_AppointmentFormShowing(ByVal sender As Object, ByVal e As AppointmentFormEventArgs)

e.Container = New UserAppointmentFormTemplateContainer(CType(sender, ASPxScheduler))

过程执行结束

第9步:定义一个公共类——从AppointmentFormController类继承的UserAppointmentFormController。它重写了以下方法: IsAppointmentChanged(用来检查需要修改的约会)和ApplyCustomFieldsValues(将已编辑约会的副本的自定义字段值应用到源约会)。

第10步:定义一个公共类——从AppointmentFormSaveCallbackCommand类继承的UserAppointmentSaveCallbackCommand。为从绑定控件中得到新的自定义字段值,您需要重写AssignControllerValues方法。重写CreateAppointmentFormController方法,则将返回一个UserAppointmentFormController实例。

第11步:更改表单HTML代码中的数据绑定,让数据绑定指向UserAppointmentFormTemplateContainer。要做到这一点,需要找出.ascx页HTML代码中数据源属性的内嵌表达式。将AppointmentFormTemplateContaine转换替换为UserAppointmentFormTemplateContainer转换。

第12步:别忘了为新添加的用于显示自定义字段的控件指定数据绑定。

[ASPx]

<dxe:ASPxTextBox ID="tbField1" runat="server" Width="75px" Text='<%#((UserAppointmentFormTemplateContainer)Container).Field1 %>'>

</dxe:ASPxTextBox>

<dxe:ASPxMemo ID="memField2" runat="server" Height="71px" Width="170px" Text='<%#((UserAppointmentFormTemplateContainer)Container).Field2 %>'>

</dxe:ASPxMemo>

第13步:处理BeforeExecuteCallBackCommand事件,以使用您自己的UserAppointmentSaveCallbackCommand类实例,而不是默认命令。

第14步:运行该项目。当打开约会时检查自定表单是否显示出来。填写自定义字段,检查当点击OK时新的值能否保存,能否在下一个打开的表单上恢复。



 



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

文章转载自:DevExpress中文网

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
title
相关厂商
相关产品
DevExpress Universal Subscription

行业领先的.NET界面控件,示例和帮助文档完善,提供定制、培训、汉化一体化服务。

ASPxScheduler Suite

专为ASP.NET设计并优化,包含了创建优秀web应用程序所需的所有元素

DevExpress WPF Controls

高效的MVVM开发模式,WPF界面解决方案首选工具,帮助企业实现酷炫的动效界面

DevExpress Silverlight Controls

高性价比高实用性的Silverlight用户界面控件套包,拥有大量的示例和帮助文档,开发者能够快速上手!

DevExpress Winforms Controls

高性价比高实用性的WinForms用户界面控件套包,拥有大量的示例和帮助文档,开发者能够快速上手!

DXperience Subscription

高性价比的企业级.NET用户界面套包,带源码,大量示例和帮助文档让开发者快速上手!

DevExpress ASP.NET Controls

多款重量级ASP.NET用户界面组件套包,让您快速开发出完美、强大的ASP应用程序!

在线
客服
在线
QQ
电话
咨询
400-700-1020
购物车 反馈 返回
顶部
在线客服系统
live chat