Can';t get RADScheduler to work with WCF

4 posts, 0 answers
  1. Steve
    Steve avatar
    84 posts
    Member since:
    Aug 2013

    Posted 28 Sep 2013 Link to this post

    I'm trying to get a RADScheduler project switched over from using calls directly to a SQL Server database, to working with a WCF service. I took the example provided and modified it to work in our situation. But, I'm getting a webexception:

    The remote server returned an error: (415) Cannot process the message because the content type 'application/json; charset=utf-8' was not the expected type 'text/xml; charset=utf-8'.. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.Net.WebException: The remote server returned an error: (415) Cannot process the message because the content type 'application/json; charset=utf-8' was not the expected type 'text/xml; charset=utf-8'..

    Source Error:

    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

    Stack Trace:

    [WebException: The remote server returned an error: (415) Cannot process the message because the content type 'application/json; charset=utf-8' was not the expected type 'text/xml; charset=utf-8'..] System.Net.WebClient.UploadDataInternal(Uri address, String method, Byte[] data, WebRequest& request) +303 System.Net.WebClient.UploadString(Uri address, String method, String data) +167 System.Net.WebClient.UploadString(String address, String method, String data) +35 Telerik.Web.UI.SchedulerWebServiceClient.LoadResources(WebClient client, ResourcesPopulatingEventArgs args) +348 [Exception: An error occurred while requesting resources from the web service. Server responded with: ] Telerik.Web.UI.SchedulerWebServiceClient.HandleWebException(WebException webEx) +315 Telerik.Web.UI.SchedulerWebServiceClient.LoadResources(WebClient client, ResourcesPopulatingEventArgs args) +387 Telerik.Web.UI.SchedulerWebServiceClient.GetResources() +408 Telerik.Web.UI.RadScheduler.BindResourcesFromWebService() +116 Telerik.Web.UI.RadScheduler.BindResources() +107 Telerik.Web.UI.RadScheduler.PerformSelect() +146 System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +30 Telerik.Web.UI.RadScheduler.EnsureDataBound() +93 Telerik.Web.UI.RadScheduler.CreateChildControls(Boolean bindFromDataSource) +122 Telerik.Web.UI.RadScheduler.CreateChildControls() +34 System.Web.UI.Control.EnsureChildControls() +83 System.Web.UI.Control.PreRenderRecursiveInternal() +42 System.Web.UI.Control.PreRenderRecursiveInternal() +168 System.Web.UI.Control.PreRenderRecursiveInternal() +168 System.Web.UI.Control.PreRenderRecursiveInternal() +168 System.Web.UI.Control.PreRenderRecursiveInternal() +168 System.Web.UI.Control.PreRenderRecursiveInternal() +168 System.Web.UI.Control.PreRenderRecursiveInternal() +168 System.Web.UI.Control.PreRenderRecursiveInternal() +168 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +974 

    This is my IAppointmentsWCF.vb code:
    Imports System.Collections.Generic
    Imports System.ServiceModel
    Imports System.ServiceModel.Activation
    Imports System.Web
    Imports Telerik.Web.UI
    Imports System.Configuration
    Imports System.Data.Common
     
     
    <ServiceContract([Namespace]:="MedSpaOnline.com")> _
    <AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)> _
    <ServiceBehavior(IncludeExceptionDetailInFaults:=True)> _
    Public Class SchedulerWcfService
     
     
        Private _controller As WebServiceAppointmentController
        Private _provider As AppointmentsProvider
        Private ReadOnly Property Provider() As AppointmentsProvider
            Get
                If _provider Is Nothing Then
                    Dim crypto As Encryption.Crypto = New Encryption.Crypto("Suncoast")
                    Dim connString = crypto.Decrypt(ConfigurationManager.ConnectionStrings("POS").ConnectionString)
                    Dim factory = DbProviderFactories.GetFactory("System.Data.SqlClient")
                    _provider = New AppointmentsProvider()
                    _provider.ConnectionString = connString
                    _provider.DbFactory = factory
                    _provider.PersistChanges = True
     
                End If
                Return _provider
            End Get
        End Property
     
        ''' <summary>
        '''  The WebServiceAppointmentController class is used as a facade to the SchedulerProvider.
        ''' </summary>
        Private ReadOnly Property Controller() As WebServiceAppointmentController
            Get
                If _controller Is Nothing Then
                    _controller = New WebServiceAppointmentController(Provider)
                End If
     
                Return _controller
            End Get
        End Property
     
        <OperationContract> _
        <WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped)> _
        Public Function GetAppointments(schedulerInfo As MySchedulerInfo) As IEnumerable(Of AppointmentData)
            Return Controller.GetAppointments(schedulerInfo)
        End Function
     
        <OperationContract> _
        <WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped)> _
        Public Function InsertAppointment(schedulerInfo As MySchedulerInfo, appointmentData As AppointmentData) As IEnumerable(Of AppointmentData)
            Return Controller.InsertAppointment(schedulerInfo, appointmentData)
        End Function
     
        <OperationContract> _
        <WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped)> _
        Public Function UpdateAppointment(schedulerInfo As MySchedulerInfo, appointmentData As AppointmentData) As IEnumerable(Of AppointmentData)
            Return Controller.UpdateAppointment(schedulerInfo, appointmentData)
        End Function
     
        <OperationContract> _
        <WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped)> _
        Public Function CreateRecurrenceException(schedulerInfo As MySchedulerInfo, recurrenceExceptionData As AppointmentData) As IEnumerable(Of AppointmentData)
            Return Controller.CreateRecurrenceException(schedulerInfo, recurrenceExceptionData)
        End Function
     
        <OperationContract> _
        <WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped)> _
        Public Function RemoveRecurrenceExceptions(schedulerInfo As MySchedulerInfo, masterAppointmentData As AppointmentData) As IEnumerable(Of AppointmentData)
            Return Controller.RemoveRecurrenceExceptions(schedulerInfo, masterAppointmentData)
        End Function
     
        <OperationContract> _
        <WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped)> _
        Public Function DeleteAppointment(schedulerInfo As MySchedulerInfo, appointmentData As AppointmentData, deleteSeries As Boolean) As IEnumerable(Of AppointmentData)
            Return Controller.DeleteAppointment(schedulerInfo, appointmentData, deleteSeries)
        End Function
     
        <OperationContract> _
        <WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped)> _
        Public Function GetResources(schedulerInfo As MySchedulerInfo) As IEnumerable(Of ResourceData)
            Return Controller.GetResources(schedulerInfo)
        End Function
     
    End Class

    This is my AppointmentsWCF.svc.vb code:
    cmd.Connection = conn
                cmd.Parameters.Add(CreateParameter("@StoreID", StoreID))
                cmd.CommandText = "CustomerAppointmentSelect"
                cmd.CommandType = CommandType.StoredProcedure
     
                Using reader As DbDataReader = cmd.ExecuteReader()
                    While reader.Read()
                        Dim res As New Resource()
                        res.Type = "customer"
                        res.Key = reader("CustomerID")
                        res.Text = Convert.ToString(reader("CustomerName"))
                        resources.Add(res)
                    End While
                End Using
            End Using
     
            Return resources
        End Function
     
        'Private Sub FillClassCustomers(appointment As Appointment, cmd As DbCommand, classId As Object)
        '    For Each customer As Resource In appointment.Resources.GetResourcesByType("customer")
        '        cmd.Parameters.Clear()
        '        cmd.Parameters.Add(CreateParameter("@ClassID", classId))
        '        cmd.Parameters.Add(CreateParameter("@customerID", customer.Key))
     
        '        cmd.CommandText = "INSERT INTO [DbProvider_ClassCustomers] ([ClassID], [customerID]) VALUES (@ClassID, @customerID)"
        '        cmd.ExecuteNonQuery()
        '    Next
        'End Sub
     
        'Private Sub ClearClassCustomers(classId As Object, cmd As DbCommand)
        '    cmd.Parameters.Clear()
        '    cmd.Parameters.Add(CreateParameter("@ClassID", classId))
        '    cmd.CommandText = "DELETE FROM [DbProvider_ClassCustomers] WHERE [ClassID] = @ClassID"
        '    cmd.ExecuteNonQuery()
        'End Sub
     
        Private Sub PopulateAppointmentParameters(cmd As DbCommand, apt As Appointment, ByVal Action As String)
            If Action.Equals("UPDATE") Then
                cmd.Parameters.Add(CreateParameter("@ID", apt.ID))
            End If
     
            cmd.Parameters.Add(CreateParameter("@StoreID", StoreID))
            cmd.Parameters.Add(CreateParameter("@Subject", apt.Subject))
            cmd.Parameters.Add(CreateParameter("@Start", apt.Start))
            cmd.Parameters.Add(CreateParameter("@End", apt.[End]))
     
            Dim customer As Resource = apt.Resources.GetResourceByType("customer")
            Dim customerId As Object = Nothing
            If customer IsNot Nothing Then
                customerId = customer.Key
            End If
            cmd.Parameters.Add(CreateParameter("@CustomerID", customerId))
     
            Dim employee As Resource = apt.Resources.GetResourceByType("employee")
            Dim employeeId As Object = Nothing
            If employee IsNot Nothing Then
                employeeId = employee.Key
            End If
            cmd.Parameters.Add(CreateParameter("@EmployeeID", employeeId))
     
            Dim rrule As String = Nothing
            If apt.RecurrenceRule <> String.Empty Then
                rrule = apt.RecurrenceRule
            End If
            cmd.Parameters.Add(CreateParameter("@RecurrenceRule", rrule))
     
            Dim parentId As Object = Nothing
            If apt.RecurrenceParentID IsNot Nothing Then
                parentId = apt.RecurrenceParentID
            End If
            cmd.Parameters.Add(CreateParameter("@RecurrenceParentId", parentId))
            cmd.Parameters.Add(CreateParameter("@Annotations", ""))
            cmd.Parameters.Add(CreateParameter("@Description", apt.Description))
            cmd.Parameters.Add(CreateParameter("@Reminder", apt.Reminders.ToString()))
        End Sub
    End Class
     
    Public Class MySchedulerInfo
        Inherits SchedulerInfo
        Public Property StoreID() As String
            Get
                Return _storeid
            End Get
            Set(value As String)
                _storeid = value
            End Set
        End Property
        Private _storeid As Integer
        Public Sub New(baseInfo As ISchedulerInfo, storeid_1 As Integer)
            MyBase.New(baseInfo)
            StoreID = storeid_1
        End Sub
        Public Sub New()
        End Sub
     
        Protected Overrides Sub Finalize()
            MyBase.Finalize()
        End Sub
    End Class

    This is the Web.config file:
    <?xml version="1.0"?>
    <configuration>
      <connectionStrings>
        <!--SQL Server-->
        <!--<add name="POSDB" connectionString="4PWt4K/rc1CkfMOmzAtubPLsFJ51KNDs9YW8tXf54735pIwMePgOdWaP2DazZg5zj2NXHYnkQd36dZb1NwQTXRujp0Me64Xc/rzAVWrKuM/b9S5lBMc0f9oz8fBAxICfi8/ge9CHrY2NOwdysmDO9w=="/>-->
        <!--SQL Express-->
        <add name="POS" connectionString="8FkDM4EumAI6nH1h6twN/Gm9lV0cFp1kH22N3nFpqsTn/65a9ISM9mgbdczruCjHumIWrNtrUAsSJ9qdo710eIvP4HvQh62NjTsHcrJgzvc="/>
      </connectionStrings>
     
      <system.web>
        <compilation debug="true" strict="false" explicit="true" targetFramework="4.0" />
      </system.web>
      <system.serviceModel>
        <behaviors>
          <serviceBehaviors>
            <behavior>
              <!-- To avoid disclosing metadata information, set the value below to false before deployment -->
              <serviceMetadata httpGetEnabled="true"/>
              <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
              <serviceDebug includeExceptionDetailInFaults="false"/>
            </behavior>
          </serviceBehaviors>
        </behaviors>
        <serviceHostingEnvironment >
          <!--<serviceActivations>
            <add factory="System.ServiceModel.Activation.WebServiceHostFactory"
                 relativeAddress="AppointmentsWCF.svc"
                 service="AppointmentsWCF.SchedulerWcfService"/>
          </serviceActivations>-->
        </serviceHostingEnvironment>
      </system.serviceModel>
      <system.webServer>
        <modules runAllManagedModulesForAllRequests="true"/>
        <!--
            To browse web app root directory during debugging, set the value below to true.
            Set to false before deployment to avoid disclosing web app folder information.
          -->
        <directoryBrowse enabled="false"/>
      </system.webServer>
     
    </configuration>

    The application with the RADScheduler is as follows.

    This is the AppointmentDisplay.ascx code:
    <%@ Control Language="vb" AutoEventWireup="false" CodeBehind="AppointmentDisplay.ascx.vb" Inherits="Appointments.AppointmentDisplay" %>
     
    <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
     
     
    <div>
    <%--    <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" />--%>
        <telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy1" runat="server" ></telerik:RadAjaxManagerProxy>
    <%--    <telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="RadAjaxLoadingPanel1">--%>
            <telerik:RadScheduler  ID="RadScheduler1" runat="server" DataDescriptionField="Description" DataEndField="End" DataKeyField="ID"
                DataRecurrenceField="RecurrenceRule" DataRecurrenceParentKeyField="RecurrenceParentID" DataReminderField="Reminder"  
                DataStartField="Start" DataSubjectField="Subject" GroupBy="Employee" Skin="Forest" StartInsertingInAdvancedForm="True" OnResourcesPopulating="RadScheduler1_ResourcesPopulating"  >
                <ResourceTypes>
                    <telerik:ResourceType  ForeignKeyField="EmployeeID" KeyField="EmployeeID" Name="Employee" TextField="EmployeeName" />
                    <telerik:ResourceType  ForeignKeyField="CustomerID" KeyField="CustomerID" Name="Customer" TextField="CustomerName" />
                </ResourceTypes>
                <WebServiceSettings Path="http://localhost:3457/AppointmentsWCF.svc" ResourcePopulationMode="ServerSide" />
            </telerik:RadScheduler>
    <%--    </telerik:RadAjaxPanel>--%>
         
     <%--       <asp:SqlDataSource ID="DSAppointments" runat="server" ConnectionString="Data Source=192.168.1.10,427;Initial Catalog=POS;Persist Security Info=True;User ID=sa;Password=67Impala" ProviderName="System.Data.SqlClient"
                SelectCommand="AppointmentsSelect" SelectCommandType="StoredProcedure"
                DeleteCommand="AppointmentsDelete" DeleteCommandType="StoredProcedure"
                InsertCommand="AppointmentsInsert" InsertCommandType="StoredProcedure"
                UpdateCommand="AppointmentsUpdate" UpdateCommandType="StoredProcedure">
            </asp:SqlDataSource>
            <asp:SqlDataSource ID="DSEmployees" runat="server" ConnectionString="Data Source=192.168.1.10,427;Initial Catalog=POS;Persist Security Info=True;User ID=sa;Password=67Impala" ProviderName="System.Data.SqlClient"
                SelectCommand="EmployeeAppointmentSelect" SelectCommandType="StoredProcedure" >
            </asp:SqlDataSource>
            <asp:SqlDataSource ID="DSCustomers" runat="server" ConnectionString="Data Source=192.168.1.10,427;Initial Catalog=POS;Persist Security Info=True;User ID=sa;Password=67Impala" ProviderName="System.Data.SqlClient"
                SelectCommand="CustomerAppointmentSelect" SelectCommandType="StoredProcedure" >
            </asp:SqlDataSource>--%>
    </div>

    This is the codebehind:
    Imports Telerik.Web.UI
     
    Public Class AppointmentDisplay
        Inherits System.Web.UI.UserControl
     
        Private cnn As String
        Dim sStoreID As String
        Dim tabstrip As RadTabStrip
        Dim tab As RadTab
        Dim StoreID As HiddenField
     
     
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim crypto As Encryption.Crypto = New Encryption.Crypto("Suncoast")
            cnn = crypto.Decrypt(ConfigurationManager.ConnectionStrings("POS").ConnectionString)
     
            SetStoreID()
            BuildDSAppointments()
            BuildDSEmployees()
            BuildDSCustomers()
            BuildScheduler()
     
        End Sub
     
        Private Sub SetStoreID()
     
            tabstrip = Parent.FindControl("RadTabStrip1")
            tab = tabstrip.SelectedTab
     
            sStoreID = tab.Attributes.Item("StoreID").ToString
     
            StoreID = Parent.FindControl("StoreID")
     
            StoreID.Value = sStoreID
     
        End Sub
        Private Sub BuildScheduler()
     
            'RadScheduler1.ID = "Scheduler" + sStoreID
            'RadScheduler1.DataSourceID = DSAppointments.UniqueID
            'RadScheduler1.ResourceTypes(0).DataSourceID = DSEmployees.UniqueID
            'RadScheduler1.ResourceTypes(1).DataSourceID = DSCustomers.UniqueID
     
        End Sub
        Private Sub BuildDSAppointments()
     
            'With DSAppointments
            '    .ID = "DSAppointments" + sStoreID
            '    .ConnectionString = cnn
            '    .SelectParameters.Clear()
            '    .SelectParameters.Add(New ControlParameter("StoreID", System.TypeCode.Int32, StoreID.UniqueID, "Value"))
     
            '    .DeleteParameters.Clear()
            '    .DeleteParameters.Add(New Parameter("ID", DbType.Int32))
     
            '    .InsertParameters.Clear()
            '    .InsertParameters.Add(New ControlParameter("StoreID", System.TypeCode.Int32, StoreID.UniqueID, "Value"))
            '    .InsertParameters.Add(New Parameter("Subject", DbType.String))
            '    .InsertParameters.Add(New Parameter("Start", DbType.DateTime))
            '    .InsertParameters.Add(New Parameter("End", DbType.DateTime))
            '    .InsertParameters.Add(New Parameter("CustomerID", DbType.Int32))
            '    .InsertParameters.Add(New Parameter("EmployeeID", DbType.Int32))
            '    .InsertParameters.Add(New Parameter("RecurrenceRule", DbType.String))
            '    .InsertParameters.Add(New Parameter("RecurrenceParentID", DbType.Int32))
            '    .InsertParameters.Add(New Parameter("Annotations", DbType.String))
            '    .InsertParameters.Add(New Parameter("Description", DbType.String))
            '    .InsertParameters.Add(New Parameter("Reminder", DbType.String))
     
            '    .UpdateParameters.Clear()
            '    .UpdateParameters.Add(New ControlParameter("StoreID", System.TypeCode.Int32, StoreID.UniqueID, "Value"))
            '    .UpdateParameters.Add(New Parameter("Subject", DbType.String))
            '    .UpdateParameters.Add(New Parameter("Start", DbType.DateTime))
            '    .UpdateParameters.Add(New Parameter("End", DbType.DateTime))
            '    .UpdateParameters.Add(New Parameter("CustomerID", DbType.Int32))
            '    .UpdateParameters.Add(New Parameter("EmployeeID", DbType.Int32))
            '    .UpdateParameters.Add(New Parameter("RecurrenceRule", DbType.String))
            '    .UpdateParameters.Add(New Parameter("RecurrenceParentID", DbType.Int32))
            '    .UpdateParameters.Add(New Parameter("Annotations", DbType.String))
            '    .UpdateParameters.Add(New Parameter("Description", DbType.String))
            '    .UpdateParameters.Add(New Parameter("Reminder", DbType.String))
            '    .UpdateParameters.Add(New Parameter("ID", DbType.Int32))
     
            'End With
     
        End Sub
     
        Private Sub BuildDSEmployees()
     
            'With DSEmployees
            '    .ID = "DSEmployees" + sStoreID
            '    .ConnectionString = cnn
     
            '    .SelectParameters.Clear()
            '    .SelectParameters.Add(New ControlParameter("StoreID", System.TypeCode.Int32, StoreID.UniqueID, "Value"))
     
            'End With
     
        End Sub
     
        Private Sub BuildDSCustomers()
     
            'With DSCustomers
            '    .ID = "DSCustomers" + sStoreID
            '    .ConnectionString = cnn
     
            '    .SelectParameters.Clear()
            '    .SelectParameters.Add(New ControlParameter("StoreID", System.TypeCode.Int32, StoreID.UniqueID, "Value"))
     
            'End With
     
        End Sub
     
        'Protected Sub RadScheduler1_FormCreated(sender As Object, e As SchedulerFormCreatedEventArgs)
        '    If (e.Container.Mode = SchedulerFormMode.AdvancedEdit) OrElse (e.Container.Mode = SchedulerFormMode.AdvancedInsert) Then
        '        'finds the RadComboBox representing the user resource
        '        Dim customerResource As RadComboBox = TryCast(e.Container.FindControl("ResCustomer"), RadComboBox)
        '        'this line of code will subscribe for the the client-side event fired when user selects a new value from the RadComboBox control
        '        customerResource.OnClientSelectedIndexChanging = "OnClientSelectedIndexChanging"
        '    End If
     
        'End Sub
     
        Protected Sub RadScheduler1_ResourcesPopulating(sender As Object, e As ResourcesPopulatingEventArgs)
            Dim info As AppointmentsWCF.MySchedulerInfo = New AppointmentsWCF.MySchedulerInfo
            info.ViewStart = e.SchedulerInfo.ViewStart
            info.ViewEnd = e.SchedulerInfo.ViewEnd
            info.StoreID = sStoreID
        End Sub
    End Class


    I have been hacking away at this for almost a week and just can't get his to work! Anyone here that can help with this?
    Thanks.





  2. Plamen
    Admin
    Plamen avatar
    2729 posts

    Posted 03 Oct 2013 Link to this post

    Hi,

     
    We have successfully replicated the error that you observe based on the files provided and will contact you as soon as we have more information about it.

    Regards,
    Plamen
    Telerik
    If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed now.
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Steve
    Steve avatar
    84 posts
    Member since:
    Aug 2013

    Posted 04 Oct 2013 Link to this post

    Your comments to me via private ticket states the error is because the WCF is on a different domain than the scheduler program, and thus will not work. That to me is unacceptable as an answer. If I am on the same domain as my data, why would I need to write a WCF to interface with my data? The purpose of the WCF is to provide a remotely available interface to my data. But, you state that is not doable! So, if that is not doable, then the RADScheduler is not truly WCF friendly, as you state in your documentation.

    So, the only way around this is to write a WCF to interface with my WCF! That's pathetic.
  5. Plamen
    Admin
    Plamen avatar
    2729 posts

    Posted 09 Oct 2013 Link to this post

    Hello Steve,


    Basically when RadScheduler is bound to WCF it is using client Ajax calls that use XMLHttpRequest object that allow the client side JavaScript code to make HTTP connections. 
    Unfortunately Ajax calls are not allowed to get data from cross-domain because it is considered a Cross-Site scripting and that is why such actions are restrictions imposed by the browsers. 

    In the exact scenario that you sent us a request is made for getting the resources of RadScheduler. At this point due to the fact that the service is not  published properly an error message is returned. It is in XML format and that is why we observe the error -Cannot process the message because the content type 'application/json; charset=utf-8' was not the expected type 'text/xml; charset=utf-8'...

    The only workaround for such scenario is to use JSONP object. With RadScheduler such scenario can be currently achieved by using Odata service as on this on-line demo. Unfortunately this scenario is supported only in ReadOnly mode without the ability to insert, update or delete the appointments.

    Regards,
    Plamen
    Telerik
    If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed now.
Back to Top