I need to achieve a functionality to refresh the scheduler on a button click event.
The button should exist as a link button on the scheduler.I am using sharepoint list as the datasource
Could you provide some pointers on this.
Thank you
Smith
8 Answers, 1 is accepted
You can call RadScheduler's Rebind() method in your button click event handler to refresh the control.
Peter
the Telerik team

Hello Telerik Team,
Thank you for the response.where do i need to place the link button so that it appears
on the rad scheduler.Can i have a sample of it.
I appreciate your response.
Thank you
Smith
Currently, RadScheduler does not have Header template, but we plan to implement this feature, which would allow you to achieve your goal easily. Please, excuse us for this temporary limitation of RadScheduler.
Greetings,
Peter
the Telerik team

Thank you for the response.
I have used a asp:panel and kept one link button(for refresh) in that and it appears on the scheduler.
I did the following way and its working
protected void lnkRefresh_Click(object sender, EventArgs e)
{
callRadSchedulerMethod();
RadScheduler1.Rebind();
}
Thank you
Smith

I am trying to implement same functionality on button click but it's not refreshing the scheduler while datatable gets data as per filter. I get the following error on button click when I use Ajaxmanager within Ajaxpanel:
Microsoft JScript runtime error: Sys.InvalidOperationException: A control is already associated with the element.
The above error goes away whan use Ajaxmanager outside of Ajaxpanel but still does not refresh Scheduler Data.
It works fine when I navigate ( next, previous arrow) through Scheduler itself. Would you mind sharing the code how you did it? Here is my code details:
Code Behind
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
SetConnection()
If IsPostBack = False Then
RadSchCalendar.SelectedView = SchedulerViewType.MonthView
FillYear()
FillDepartments()
FillDeptUser()
GetAppointments("","","",False)
End If
End Sub
Protected Sub RadAjaxManager1_AjaxRequest(ByVal sender As Object, ByVal e As Telerik.Web.UI.AjaxRequestEventArgs) Handles RadAjaxManager1.AjaxRequest
Dim dateClicked As String = e.Argument
Dim seps As Char() = {"/"}
Dim dateArray As String() = dateClicked.Split(seps, StringSplitOptions.RemoveEmptyEntries)
Dim selectedDate As New DateTime(Int32.Parse(dateArray(2)), Int32.Parse(dateArray(0)), Int32.Parse(dateArray(1)))
RadSchCalendar.SelectedDate = selectedDate
RadSchCalendar.SelectedView = SchedulerViewType.TimelineView
End Sub
Protected Sub RadSchCalendar_NavigationComplete(sender As Object, e As SchedulerNavigationCompleteEventArgs)
Dim strYear As String = String.Empty
Dim strMonth As String = String.Empty
Dim strDate As String = String.Empty
strYear = Year(RadSchCalendar.SelectedDate)
strMonth = Month(RadSchCalendar.SelectedDate)
If strYear <> "" Then
Dim intIndex As Integer = radcboYear.FindItemIndexByValue(strYear)
If radcboYear.Items.Count > 0 Then
radcboYear.SelectedIndex = intIndex
End If
End If
If RadSchCalendar.SelectedView = SchedulerViewType.MonthView Then
strDate = ""
ElseIf RadSchCalendar.SelectedView = SchedulerViewType.TimelineView Then
strDate = RadSchCalendar.SelectedDate.ToString("MM/dd/yyyy")
End If
GetAppointments(strYear, strMonth, strDate, True)
End Sub
Protected Sub RadSchCalendar_AppointmentCreated(sender As Object, e As AppointmentCreatedEventArgs)
If e.Appointment.Attributes("ColorCode") <> "" Then 'Bunti Singh
e.Appointment.BackColor = System.Drawing.ColorTranslator.FromHtml(e.Appointment.Attributes("ColorCode"))
End If
End sub
Private
Sub RadButton1_Click(sender As Object, e As System.EventArgs) Handles RadButton1.Click
GetAppointments("","","",True)
End Sub
Private
Sub GetAppointments(ByVal strYear As String, ByVal strMonth As String, ByVal strDate As String, ByVal blnReBinding As Boolean)
Dim dtTable As New DataTable
Dim strDeptCode as string = get value from department radcombo.
dtTable = _DbxCon.SpToDataTable("procGetCalendarData", strDeptCode)
Try
' datatable returns the data as per department.
RadSchCalendar.DataSource = dtTable
If blnReBinding = True Then
RadSchCalendar.Rebind()
Else
RadSchCalendar.DataBind()
End If
Catch ex As SqlException
lblError.Text = ex.Message
End Try
End Sub
======================== User Control Code=================
<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="VacationCalendar.ascx.vb" Inherits="DotNet.VacationCalendar" %>
<div style="width:100%;">
<telerik:RadAjaxManager runat="server" ID="RadAjaxManager1" >
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadSchCalendar" />
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="btnView">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadSchCalendar" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" Skin="Default" BackgroundPosition="Center" EnableSkinTransparency="true" runat="server" />
<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID= "RadAjaxLoadingPanel1" >
<telerik:RadStyleSheetManager ID="RadStyleSheetManager1" runat="server" />
<table border="0" cellpadding="0" cellspacing="2" style="width:100%;">
<tr>
<td colspan = "7">
<asp:Label ID="lblError" runat="server" Text="" ForeColor="Red" ></asp:Label>
</td>
</tr>
<tr>
<td width = "80px" align = "right" ><b>Year :</b></td>
<td width = "80px" align= "left">
<telerik:radcombobox ID="radcboYear"
Skin="Office2007"
Width="60px"
runat="server"
MarkFirstMatch="True"
OnClientSelectedIndexChanged="function(){DisplayRefreshMessage('D');}">
</telerik:radcombobox>
</td>
<td width = "100px" align = "right" ><b>Department :</b></td>
<td width = "220px" align= "left">
<telerik:RadComboBox ID="radcboDept" runat="server" Skin = "Office2007"
CheckBoxes="true" EnableCheckAllItemsCheckBox="true" Width="210px"
MarkFirstMatch = "true"
OnClientSelectedIndexChanged="function(){DisplayRefreshMessage('D');}">
</telerik:RadComboBox>
</td>
<td width = "100px" align = "right" ><b>Employee :</b></td>
<td width = "220px" align= "left">
<telerik:radcombobox ID="radcboUser"
Skin="Vista"
Width="215px"
runat="server"
MarkFirstMatch="True"
OnClientSelectedIndexChanged="function(){DisplayRefreshMessage('D');}">
</telerik:radcombobox>
</td>
<td width = "70px">
<telerik:RadButton ID="RadButton1" runat="server" Text="View" width="60px"> </telerik:RadButton>
</td>
</tr>
</table>
<table>
<tr>
<td >
<telerik:RadScheduler ID="RadSchCalendar" runat="server"
ShowFullTime ="false"
ShowAllDayRow = "true"
ShowHoursColumn= "false"
WorkDayStartTime="00:00:00"
WorkDayEndTime="11:59:59"
ShowFooter = "false"
Readonly = "true"
Height= "700px"
RowHeight = "20px"
DataStartField="DateFrom"
DataEndField="DateTo"
DataKeyField="RecID"
DataSubjectField="Subject"
CustomAttributeNames="ColorCode"
MonthView-ShowResourceHeaders="true"
MonthView-ShowDateHeaders="true"
Onappointmentcreated="RadSchCalendar_AppointmentCreated"
Ondatabound="RadSchCalendar_DataBound" Skin="Forest"
OnNavigationComplete = "RadSchCalendar_NavigationComplete">
<TimelineView UserSelectable= "true" NumberOfSlots="1" />
<WeekView UserSelectable= "true" />
<DayView UserSelectable= "False" />
<MonthView VisibleAppointmentsPerDay="5" AdaptiveRowHeight="true" />
</telerik:RadScheduler>
</td>
</tr>
</table>
</telerik:RadAjaxPanel>
<br />
<span style="text-align: center; width: 100%;">
</span>
<br />
</div>
<telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">
<Scripts>
<%--Needed for JavaScript IntelliSense in VS2010--%>
<%--For VS2008 replace RadScriptManager with ScriptManager--%>
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" />
</Scripts>
<script type="text/javascript">
function pageLoad(sender, args) {
$ = $telerik.$;
var a = $(".rsDateHeader").click(function (e) {
$(this)[0].title
$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest($(this)[0].title);
e.stopPropagation();
e.preventDefault();
});
var more = $(".rsShowMore").click(function (e) {
$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest($(this.parentElement).find(" .rsDateHeader")[0].title);
e.stopPropagation();
e.preventDefault();
});
}
//Set the label message for change of drop down.
// strflag = 'D' means display message
// 'H' hide message
function DisplayRefreshMessage(strflag) {
var lblMes = document.getElementById('<%= lblError.ClientID %>');
if (strflag == 'D') {
lblMes.innerText = "*** Please press View button to refresh data. ***";
}
else {
lblMes.innerText = "";
}
return
}
</script>
</telerik:RadScriptBlock>
Thanks in advance,
-Ram

Never Mind, I solved my problem by using the following code after Rebind.
RadSchCalendar.SelectedDate = Convert.ToDateTime(dtTable.Rows(0)("DateTo"))
thanks,
-Ram

I am using Rad Schedular on ASCX (user control) page in MVC project and i want to Refresh only Rad Schedular on drop down changed
not entire page load or referesh.but when i changed the drop down it's refresh the schedular but data are not changed in schedular.the change only happen when whole page are reload. i am try to change minutesperrow of schedular.
i am using following code
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
EnableAJAX
=
"true"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"MinutesPerRow"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"MyScheduler1"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"HoursColumn"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxLoadingPanel
runat
=
"server"
ID
=
"RadAjaxLoadingPanel1"
/>
<
asp:DropDownList
ID
=
"MinutesPerRow"
AutoPostBack
=
"true"
runat
=
"server"
>
<
asp:ListItem
Value
=
"5"
Text
=
"10"
></
asp:ListItem
>
<
asp:ListItem
Value
=
"15"
Text
=
"30"
></
asp:ListItem
>
<
asp:ListItem
Value
=
"30"
Text
=
"60"
></
asp:ListItem
>
</
asp:DropDownList
><
telerik:RadScheduler ID="MyScheduler1" runat="server" AllowDelete="true"
SelectedView="WeekView" StartInsertingInAdvancedForm="true" ShowHeader="false"
StartEditingInAdvancedForm="true" AllowEdit="true" OnClientDataBound="OnClientDataBound"
This code isworking fine with.aspx page but problem happen on ascx page.
please help me
To change the minutes per row for RadScheduler requires server-side event handling, which is not possible in MVC.
All the best,
Peter
the Telerik team