翻譯|使用教程|編輯:龔雪|2021-06-28 09:55:00.950|閱讀 262 次
概述:Telerik Scheduler提供管理用戶創建、編輯或刪除計劃事件時所需的hooks,如果您對Scheduler的默認UI感到滿意,則可以采取簡單的方法。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Telerik Scheduler for Blazor為用戶提供一個默認界面來創建、更新或刪除活動(包括設置定期計劃和控制允許誰進行更改)。但是如果如果該接口的功能比您需要的多或少,Scheduler 還提供您所需的所有hooks。
管理活動列表更改的第一步是決定是否允許當前用戶創建、更新或刪除活動,您可以通過 TelerikScheduler 元素的 AllowCreate、AllowUpdate 和 AllowDelete 屬性來控制它。
以下示例控制用戶是否可以通過將 TelerikScheduler 的 AllowCreate 屬性綁定到名為 create 的布爾變量來創建活動:
<TelerikScheduler AllowCreate="@create" Data="@Appointments" …
這是定義該變量的代碼(以及將Scheduler綁定到計劃對象集合):
{ bool create = false; List<Appointment> Appointments = new List<Appointment>();
如果用戶處于 Admin 角色,則此代碼將 create 變量設置為 true(我假設,在應用程序的層次結構中,該組件已包含在 Blazor 的 CascadingAuthenticationState 組件中):
[CascadingParameter] private Task<AuthenticationState> authState { get; set; } private System.Security.Claims.ClaimsPrincipal principal; protected async override void OnParametersSet() { if (authState != null) { principal = (await authState).User; if (principal.IsInRole("Admin")) { create = true; } }
現在,當管理員用戶雙擊一個空的日期槽時,Scheduler將彈出一個默認對話框讓用戶創建活動,該對話框不是一個簡單的實現:
對話框中內置了大量默認驗證,它還通過生成自動填充到對象的 RecurrenceRule 屬性中的 RFC5545 規則來支持重復活動(假設您的對象有一個)。
當然,您可能還想在保存活動之前擴展該數據、修改它或添加進一步的驗證(或者甚至可能執行一些涉及另一個應用程序的協調任務)。 要實現該處理,您還需要將 TelerikScheduler 的 OnCreate 屬性連接到允許您訪問對話框創建的活動的方法。 這段代碼稱為 CreateAppointment 的方法連接到 OnCreate 事件:
<TelerikScheduler AllowCreate="@create" OnCreate="@CreateAppointment"
假設在該方法中,您想要訪問用戶的數據,該方法必須接受 SchedulerCreateEventArgs 參數,該參數的 Item 屬性將包含您用于活動的對象。在本示例中,使用一個Appointment 的類將調度程序綁定到一組對象,所以通過將 Item 屬性轉換為 Appointment 對象來啟動方法。
除了獲取創建的對象之外,您還有責任將新對象添加到您的調度程序所綁定的集合中。
async Task CreateAppointment(SchedulerCreateEventArgs e) { Appointment apt = e.Item as Appointment; //process the data Appointments.Add(apt); }
如果您的對象具有適當命名的屬性(例如 End、Start、Title、Description、IsAllDay、RecurrenceRule),這些屬性將填充用戶在對話框中輸入的值。當然您在其上添加的任何自定義屬性仍將使用其默認值,需在項目上設置 Id 屬性。
沒有明確的方法來取消 OnCreate 事件,但是如果您不希望添加繼續進行,只需跳過將新項目添加到調度程序綁定到的集合中(更新一些其他的可能是個好主意) UI 的一部分,讓用戶知道為什么他們的新計劃沒有出現在 UI 中)。
如果您想顯示自己的對話框,您需要將 Scheduler 的 OnEdit 屬性連接到應用程序中的某個方法。只要引發 OnCreate 和/或 OnUpdate 事件(但不適用于 OnDelete 事件),就會調用 OnEdit 方法。 您不必啟用 OnEdit 事件——如果不允許用戶調用 OnCreate 或 OnUpdate,您的 OnEdit 方法將永遠不會被調用。
此示例使用 OnEdit 屬性連接一個名為 CustomDialog 的事件,同時還啟用 OnCreate 事件:
<TelerikScheduler @ref="ts" AllowCreate="true" OnEdit="@CustomDialog" …
OnEdit 方法必須接受 SchedulerEditEventArgs 參數,因為您需要在方法中做的第一件事是將該參數的 IsCancelled 屬性設置為 true——這會阻止出現調度程序的默認對話框。因此,OnEdit 事件的開始總是如下所示:
async Task CustomDialog(SchedulerEditEventArgs e) { e.IsCancelled = true;
在這種情況下,您可以顯示您想要從用戶那里收集信息的任何對話框(Telerik Blazor Window 組件在這里可能是一個不錯的選擇)。
SchedulerEditEventArgs 參數在確定用戶正在做什么方面也很有用。 如果用戶嘗試創建新活動,則該參數的 IsNew 屬性將設置為 true; 如果用戶雙擊現有活動,則 IsNew 將為 false,并且參數的 Item 屬性將持有與活動相關聯的對象(也將根據對象的 IsAllDay 屬性設置參數的 IsAllDay 屬性)。
Telerik DevCraft包含一個完整的產品棧來構建您下一個Web、移動和桌面應用程序。它使用HTML和每個.NET平臺的UI庫,加快開發速度。Telerik DevCraft提供最完整的工具箱,用于構建現代和面向未來的業務應用程序,目前提供UI for ASP.NET MVC、Kendo UI、UI for ASP.NET AJAX、UI for WPF、UI for Xamarin、Reporting等眾多控件。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網