Hi,
I would like to validate the default inline template insert, basically I don't want to let the user create appointments that don't have subject inserted.
Can this be achieved? For some reason 'OnClientAppointmentInserting' is not getting triggered.
Thanks in advance.
Daryl
I would like to validate the default inline template insert, basically I don't want to let the user create appointments that don't have subject inserted.
Can this be achieved? For some reason 'OnClientAppointmentInserting' is not getting triggered.
Thanks in advance.
Daryl
8 Answers, 1 is accepted
0
Hi Daryl,
Please take a look at this KB article and let me know if you have further questions.
Greetings,
Veronica Milcheva
the Telerik team
Please take a look at this KB article and let me know if you have further questions.
Greetings,
Veronica Milcheva
the Telerik team
Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!
0
Alan
Top achievements
Rank 1
answered on 02 Mar 2011, 03:26 PM
That's not exactly how I need it, I want it to happen when the save button is triggered in the inline appointment insert. So that I can cancel the insert and give a chance to the user to insert the subject.
Thanks,
Daryl
Thanks,
Daryl
0
Alan
Top achievements
Rank 1
answered on 04 Mar 2011, 01:35 PM
Anyone?
0
Hello Daryl,
The code in the KB article does exactly what you want. When you click on Save button and no subject is inserted in the TextBox - an alert appears, the Insert is cancelled and the inline form stays opened until you enter a subject.
Please take a look at the attached sample project that demonstrates the issue.
All the best,
Veronica Milcheva
the Telerik team
The code in the KB article does exactly what you want. When you click on Save button and no subject is inserted in the TextBox - an alert appears, the Insert is cancelled and the inline form stays opened until you enter a subject.
Please take a look at the attached sample project that demonstrates the issue.
All the best,
Veronica Milcheva
the Telerik team
Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!
0
Alan
Top achievements
Rank 1
answered on 07 Mar 2011, 01:45 PM
Hi Veronica,
Thank you for the demo and I can confirm that it does work, however when I try to implement it within my code, the event doesn't fire.
Here's aspx code:
Javascript:
For some reason when I drag the appointment to create it, OnClientFormCreated is not fired even though the inline form is created.
Thank you for your help,
Daryl
Thank you for the demo and I can confirm that it does work, however when I try to implement it within my code, the event doesn't fire.
Here's aspx code:
<telerik:RadScheduler ID="radScheduler" runat="server" DayEndTime="19:00:00" FirstDayOfWeek="Monday" LastDayOfWeek="Sunday" OverflowBehavior="Expand" SelectedView="WeekView" ShowAllDayRow="True" ShowFooter="False" Skin="Windows7" WorkDayEndTime="19:00:00" OnClientAppointmentClick="OnClientAppointmentClick" OnClientTimeSlotClick="OnClientTimeSlotClick" ShowViewTabs="False" CustomAttributeNames="Task, FileCode, DocketNo" AdvancedForm-EnableCustomAttributeEditing="true" AllowInsert="False" OnTimeSlotCreated="radScheduler_TimeSlotCreated" OnFormCreated="radScheduler_FormCreated" StartInsertingInAdvancedForm="false" EnableViewState="false" EnableDescriptionField="true" EnableCustomAttributeEditing="true" Localization-AdvancedSubject="Code Center" OnAppointmentContextMenuItemClicked="radScheduler_AppointmentContextMenuItemClicked" EnableExactTimeRendering="true" OnNavigationComplete="radScheduler_NavigationComplete" OnClientFormCreated="OnClientFormCreated"> <AdvancedForm Modal="True" /> <Localization AdvancedSubject="Code Center"></Localization> <TimelineView UserSelectable="False" /> <MonthView UserSelectable="False" /> <AppointmentContextMenus> <telerik:RadSchedulerContextMenu ID="contextMenu" runat="server"> <Items> <telerik:RadMenuItem runat="server" Text="Negate Timesheet" Value="NegateCommand"> </telerik:RadMenuItem> </Items> </telerik:RadSchedulerContextMenu> </AppointmentContextMenus> <AppointmentContextMenuSettings Skin="Windows7" /></telerik:RadScheduler>Javascript:
<script type="text/javascript"> //<![CDATA[ var selectedApt; var activeTimeslot; var copiedApt; var timeSlot; var installDate = new Date("<%= installDate %>"); function rowDropping(sender, eventArgs) { // Fired when the user drops a TreeView node var node = eventArgs.get_sourceNode(); var text = node.get_text(); var currentObject = node.get_parent(); while (currentObject != null) { // get_parent() will return null when we reach the treeview if (currentObject.get_parent() != null) { document.getElementById('<%= fileCodeHidden.ClientID %>').value = currentObject.get_text() + "," + currentObject.get_value(); } currentObject = currentObject.get_parent(); } var tasks = $find("<%= rcbTaskList.ClientID %>"); document.getElementById('<%= subjectHidden.ClientID %>').value = text + "," + node.get_value(); if (tasks != null) { document.getElementById('<%= taskNameHidden.ClientID %>').value = tasks.get_value() + "," + tasks.get_text(); } var htmlElement = eventArgs.get_htmlElement(); var scheduler = $find('<%= radScheduler.ClientID %>'); //debugger; if (isPartOfSchedulerAppointmentArea(htmlElement)) { // The node was dropped over the scheduler appointment area var timeSlot = scheduler.get_activeModel().getTimeSlotFromDomElement(htmlElement) var startDate = new Date(timeSlot.get_startTime()); if (installDate <= startDate) { scheduler.showInsertFormAt(timeSlot); } } else { // The node was dropped elsewhere on the document eventArgs.set_cancel(true); } } function isPartOfSchedulerAppointmentArea(htmlElement) { // Determines if an html element is part of the scheduler appointment area return $telerik.$(htmlElement).parents().is("div.rsContent"); } function onRowDoubleClick(sender, args) { sender.get_masterTableView().editItem(args.get_itemIndexHierarchical()); } function OnClientAppointmentClick(sender, eventArgs) { if (eventArgs.get_appointment()) { selectedApt = eventArgs.get_appointment(); } } function OnClientTimeSlotClick(sender, eventArgs) { if (eventArgs.get_targetSlot()) { activeTimeslot = eventArgs.get_targetSlot(); } } function onKeyDown(event) { // current pressed key var pressedKey = String.fromCharCode(event.keyCode).toLowerCase(); if (event.ctrlKey && pressedKey == "c") { copiedApt = selectedApt; } if ((event.ctrlKey && pressedKey == "v") && copiedApt && activeTimeslot) { var scheduler = $find('<%= radScheduler.ClientID %>'); if (copiedApt && copiedApt.get_attributes().getAttribute("CostCenterID")) { document.getElementById('<%= subjectHidden.ClientID %>').value = copiedApt.get_subject() + "," + copiedApt.get_attributes().getAttribute("CostCenterID"); document.getElementById('<%= taskNameHidden.ClientID %>').value = copiedApt.get_attributes().getAttribute("TaskID") + "," + copiedApt.get_attributes().getAttribute("Task"); } if (copiedApt && copiedApt.get_attributes().getAttribute("CompanyID")) { document.getElementById('<%= companyHidden.ClientID %>').value = copiedApt.get_attributes().getAttribute("CompanyID") } var endTime = new Date(activeTimeslot.get_startTime()); endTime.setTime(endTime.getTime() + copiedApt.get_duration()); document.getElementById('<%= hiddenEndTime.ClientID %>').value = endTime.format("D") + " " + endTime.format("HH:mm:ss"); if (copiedApt && copiedApt.get_attributes().getAttribute("FileCode")) { document.getElementById('<%= fileCodeHidden.ClientID %>').value = copiedApt.get_attributes().getAttribute("FileCode") + "," + copiedApt.get_attributes().getAttribute("FileCodeID"); } if (copiedApt && copiedApt.get_attributes().getAttribute("DocketNo")) { document.getElementById('<%= docketNoHidden.ClientID %>').value = copiedApt.get_attributes().getAttribute("DocketNo"); } scheduler.showInsertFormAt(activeTimeslot); activeTimeslot = null; } } //Testing function OnClientFormCreated(sender, args) { var $ = $telerik.$; $(".rsAptEditConfirm").bind({ click: function () { var subject = $('.rsAptEditTextareaWrapper').children(); var text = subject.val(); if (text == '') { alert('Please insert a subject!'); return false; } } }); } //]]></script>For some reason when I drag the appointment to create it, OnClientFormCreated is not fired even though the inline form is created.
Thank you for your help,
Daryl
0
Hello Daryl,
Could you please be more specific on "For some reason when I drag the appointment to create it, OnClientFormCreated is not fired..." . From where did you drag the appointment? Could you please send me a runnable example so I can inspect it and help you?
Thank you!
Greetings,
Veronica Milcheva
the Telerik team
Could you please be more specific on "For some reason when I drag the appointment to create it, OnClientFormCreated is not fired..." . From where did you drag the appointment? Could you please send me a runnable example so I can inspect it and help you?
Thank you!
Greetings,
Veronica Milcheva
the Telerik team
Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!
0
Alan
Top achievements
Rank 1
answered on 10 Mar 2011, 09:29 AM
Sorry if that was a little cryptic.
Basically I have the drag & drop example, I noticed why it's not being fired and if still required I'll send you a demo.
It's because I also have the server-side OnFormCreated event. I can't really remove OnFormCreated's server side event, so I'll probably have to work around this.
Any ideas?
Thanks,
Daryl
Basically I have the drag & drop example, I noticed why it's not being fired and if still required I'll send you a demo.
It's because I also have the server-side OnFormCreated event. I can't really remove OnFormCreated's server side event, so I'll probably have to work around this.
Any ideas?
Thanks,
Daryl
0
Accepted
Hi Daryl,
Yes, you are absolutely right that the client-side event OnClientFormCreated will not fire if we are subscribing to the server event OnFormCreated too. The workaround is to put the logic in the pageLoad event instead of the OnClientFormCreated:
Regards,
Veronica Milcheva
the Telerik team
Yes, you are absolutely right that the client-side event OnClientFormCreated will not fire if we are subscribing to the server event OnFormCreated too. The workaround is to put the logic in the pageLoad event instead of the OnClientFormCreated:
function pageLoad() { var $ = $telerik.$; $(".rsAptEditConfirm").bind({ click: function() { var subject = $('.rsAptEditTextareaWrapper').children(); var text = subject.val(); if (text == '') { alert('Please insert a subject!'); return false; } } }); }Regards,
Veronica Milcheva
the Telerik team
Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!