原創(chuàng)|行業(yè)資訊|編輯:郝浩|2012-09-28 10:54:25.000|閱讀 615 次
概述:本文將一步一步第教您如何創(chuàng)建一個(gè)自定義約會(huì)編輯表單,并且該表單中包含了編輯自定義字段所需的控件。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
本文將一步一步第教您如何創(chuàng)建一個(gè)自定義約會(huì)編輯表單,并且該表單中包含了編輯自定義字段所需的控件。
第1步:為非標(biāo)準(zhǔn)的約會(huì)字段添加自定義字段映射,非標(biāo)準(zhǔn)的約會(huì)字段的數(shù)據(jù)源中有“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步:復(fù)制~DevExpress\ASPxSchedulerForms\AppointmentForm.ascx和AppointmentForm.ascx.cs到MyForms文件夾
將它們重命名為UserAppointmentForm。
第3步:將的屬性更改為指向該表單模板新位置的值——~/MyForms/UserAppointmentForm.ascx。
第4步:將UserAppointmentForm頁面開始處的“不要修改(DO NOT MODIFY)...”警告刪除。
第5步:根據(jù)需要將新控件添加到該表單。就我們而言,需要添加的新控件為ASPxTextBox控件(ID設(shè)置為tbField1)和ASPxMemo控件(ID設(shè)置為memField2)。
第6步:添加一個(gè)新的類定義文件到App_Data文件夾。將其命名為“UserAppointmentFormClass.cs”。
第7步:在該文件中定義一個(gè)公共類——從DevExpress.Web.ASPxScheduler.AppointmentFormTemplateContainer
類繼承的UserAppointmentFormTemplateContainer。它將提供來自自定義字段的數(shù)據(jù),顯示在頁面上。您可根據(jù)實(shí)際需要對(duì)數(shù)據(jù)進(jìn)行調(diào)整,使數(shù)據(jù)顯示適當(dāng)。
第8步:處理事件,將您的自定義表單指定為目標(biāo)容器(而非默認(rèn)容器)。
[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))
過程執(zhí)行結(jié)束
第9步:定義一個(gè)公共類——從類繼承的UserAppointmentFormController。它重寫了以下方法: (用來檢查需要修改的約會(huì))和ApplyCustomFieldsValues(將已編輯約會(huì)的副本的自定義字段值應(yīng)用到源約會(huì))。
第10步:定義一個(gè)公共類——從AppointmentFormSaveCallbackCommand類繼承的UserAppointmentSaveCallbackCommand。為從綁定控件中得到新的自定義字段值,您需要重寫AssignControllerValues方法。重寫CreateAppointmentFormController方法,則將返回一個(gè)UserAppointmentFormController實(shí)例。
第11步:更改表單HTML代碼中的數(shù)據(jù)綁定,讓數(shù)據(jù)綁定指向UserAppointmentFormTemplateContainer。要做到這一點(diǎn),需要找出.ascx頁HTML代碼中數(shù)據(jù)源屬性的內(nèi)嵌表達(dá)式。將AppointmentFormTemplateContaine轉(zhuǎn)換替換為UserAppointmentFormTemplateContainer轉(zhuǎn)換。
第12步:別忘了為新添加的用于顯示自定義字段的控件指定數(shù)據(jù)綁定。
[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步:處理事件,以使用您自己的UserAppointmentSaveCallbackCommand類實(shí)例,而不是默認(rèn)命令。
第14步:運(yùn)行該項(xiàng)目。當(dāng)打開約會(huì)時(shí)檢查自定表單是否顯示出來。填寫自定義字段,檢查當(dāng)點(diǎn)擊OK時(shí)新的值能否保存,能否在下一個(gè)打開的表單上恢復(fù)。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:DevExpress中文網(wǎng)