This is a migrated thread and some comments may be shown as answers.

Calender Not Refreshing

2 Answers 62 Views
Calendar
This is a migrated thread and some comments may be shown as answers.
Martin
Top achievements
Rank 1
Martin asked on 04 Aug 2020, 07:13 AM

Hi I’ve got the problem with the radcalendar please see the attached as that shows you what i'm looking to produce.

 

This is the aspx;

<%@ Page Title="" Language="C#" MasterPageFile="~/App_Templates/Local/ConfigLayoutContainer.master" AutoEventWireup="true" CodeBehind="OnCall.aspx.cs" Inherits="ConfigurationModule.rota.OnCall" %>
<%@ Register TagPrefix="user" Namespace="TESTones.Web.UI.Telerik" Assembly="TESTones.Web.UI" %>
 
<asp:Content ID="Header" ContentPlaceHolderID="InstanceHeader" runat="server">
    <title>TESTones | Configuration Module | Manage Overtime</title>
    <link href="/styles/global.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
        .rcWeekend {
            background-color: #2291a1 !important;
        }
         
        .rcDisabled
        {
            background-color: #fb1f33 !important;
            border: 1px solid #fb1f33 !important;
            background-repeat: no-repeat;
            background-position: 5px 5px !important;
        }
    </style>
</asp:Content>
 
<asp:Content ID="Page" ContentPlaceHolderID="InstanceContent" runat="server">
 
<telerik:RadWindowManager ID="RadWindowManager1" runat="server" Modal="true" Width="800" Height="600" />
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"  >
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="btnSave">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="JustOnePanel" LoadingPanelID="LoadPanel1"></telerik:AjaxUpdatedControl>
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>
 
<telerik:RadAjaxLoadingPanel ID="LoadPanel1" runat="server">
</telerik:RadAjaxLoadingPanel>
 
<telerik:RadToolBar ID="RadToolBar1" runat="server" CssClass="PageMenu">
    <Items>
        <telerik:RadToolBarButton Value="Name" runat="server">
            <ItemTemplate>
                <h1>
                    <asp:Label ID="Label4" runat="server" Text="Manage On Call" /></h1>
            </ItemTemplate>
        </telerik:RadToolBarButton>
    </Items>
</telerik:RadToolBar>
     
 
    <div class="Form">
        <div class="ContentLeft" style="width: 200px;">
            <p>
                <asp:Label ID="lblEngineer" CssClass="formLabel" Text="Engineer" runat="server" />
                <telerik:RadComboBox ID="ddlEngineer"
                    runat="server" AppendDataBoundItems="true" AutoPostBack="True" Filter="Contains" EmptyMessage="Please Select..." CssClass="SearchFormDropdown" EnableLoadOnDemand="True"
                                     OnSelectedIndexChanged="ddlEngineer_SelectedIndexChanged"/>
            </p>
        </div>
        <div>
            <telerik:RadCalendar Width="350px" Height="200px" ID="RadCalendar1" runat="server" EnableMultiSelect="True" AutoPostBack="True" CultureInfo="en-GB"
                                  OnSelectionChanged="RadCalendar1_SelectionChanged">
                <WeekendDayStyle CssClass="rcWeekend" />
                <CalendarTableStyle CssClass="rcMainTable" />
                <OtherMonthDayStyle CssClass="DayStyle" />
                <OutOfRangeDayStyle CssClass="rcOutOfRange" />
                <DisabledDayStyle CssClass="rcDisabled" />
                <SelectedDayStyle CssClass="rcSelected" />
                <DayOverStyle CssClass="rcHover" />
                <FastNavigationStyle CssClass="RadCalendarMonthView RadCalendarMonthView_WebBlue" />
                <ViewSelectorStyle CssClass="rcViewSel" />
                <DayStyle CssClass="DayStyle" />
            </telerik:RadCalendar>
        </div>
         
        <telerik:RadAjaxPanel ID="JustOnePanel" runat="server">
 
            <div class="ContentRight">
                <p>
                    <div style="margin-top: 34px; margin-left: 15px;">
                        <telerik:RadButton  runat="server" ID="btnSave" Text="Save On Call Selection" OnClick="btnSaveChanges_Click" >
                            <Icon PrimaryIconLeft="5px" PrimaryIconTop="2px" PrimaryIconUrl="../images/icons/tick.png"  />
                        </telerik:RadButton>
                        <asp:Label ID="lblSaved" CssClass="formLabel" Text="Saved" ForeColor="green" runat="server" />
                    </div>
                </p>
            </div>
 
        </telerik:RadAjaxPanel>
    </div>
</asp:Content>

 

and this is the cs;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.UI;
using Ninject;
using Test.Core.Sevices;
using Telerik.Web.UI;
using Telerik.Web.UI.Calendar;
 
namespace ConfigurationModule.rota
{
    public partial class OnCall : Page
    {
        #region Dependency declarations
        [Inject]
        public IResourceService svcResourceService { get; set; }
        [Inject]
        public ICheapSingleUserStorageService svcUser { get; set; }
        #endregion
 
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                lblSaved.Visible = false;
                BindEngineersDropDown();
                SetUpCalendar();
            }
        }
 
        protected void BindEngineersDropDown()
        {
            ddlEngineer.DataSource = svcResourceService.ListByContracts(svcUser.Get().ContractCollection().ToList());
            ddlEngineer.DataBind();
        }
 
        protected void ddlEngineer_SelectedIndexChanged(object sender, EventArgs e)
        {
            lblSaved.Visible = false;
            SetUpCalendar();
        }
 
 
        protected void RadCalendar1_SelectionChanged(object sender, SelectedDatesEventArgs e)
        {
            lblSaved.Visible = false;
        }
 
 
        protected void SetUpCalendar()
        {
            RadCalendar1.RangeMinDate = DateTime.Today;
            RadCalendar1.SpecialDays.Clear();
            RadCalendar1.SelectedDates.Clear();
 
            var onCallList = svcResourceService.GetOnCallList(ddlEngineer.SelectedValue).ToList();
 
            foreach (var rotaOverride in onCallList)
            {
                var calendarDay = new RadCalendarDay { Date = rotaOverride.Date };
 
                 
                if (rotaOverride.TypeId == 2)
                {
                    calendarDay.ItemStyle.CssClass = "rcSelected2";
                    calendarDay.IsSelectable = false;
                    RadCalendar1.SpecialDays.Add(calendarDay);
                }
                else
                {
                    RadCalendar1.SelectedDates.Add(new RadDate(rotaOverride.Date));
                }
 
                 
            }
        }
 
        protected void btnSaveChanges_Click(object sender, EventArgs e)
        {
            List<DateTime> dates = new List<DateTime>();
 
            foreach (RadDate date in RadCalendar1.SelectedDates)
            {
                var d = date.Date;
                dates.Add(d);
            }
 
            svcResourceService.UpdateOnCallList(dates, ddlEngineer.SelectedValue.ToString());
            lblSaved.Visible = true;
        }
 
    }
}

2 Answers, 1 is accepted

Sort by
0
Doncho
Telerik team
answered on 06 Aug 2020, 05:01 PM

Hi Martin,

I have noticed nested Ajax Settings in the provided code. Introducing ajax settings in the RadAjaxManager for controls wrapped into RadAjaxPanel or UpdatePanel can cause unexpected behavior, see Controls Wrapped in AjaxPanel and Added to AjaxManager Settings.

I would suggest you disable any Ajax on the page and test the application to see how it works, see Get more descriptive errors by disabling AJAX.

Once the Ajax is disabled, check for eventual JavaScript errors on the page, as such will also affect the behavior of the controls. The Improve Your Debugging Skills with Chrome DevTools blog post may help in that process.

If the project is working fine when Ajax is disabled, you can try to bring it back according to the instructions in the Understanding AJAX Controls article.

In case this is not helping, we would need to have a reproduction of the issue in order to troubleshoot it. Therefore, it would be very helpful if you share an isolated sample code without external dependencies that would help us experience the problem locally. 

Please give a try to the suggested above and let me know how it goes!

Kind regards,
Doncho
Progress Telerik

0
Martin
Top achievements
Rank 1
answered on 10 Aug 2020, 12:48 PM
Not 100% sure what fixed it but it seems to be working okay now. I had to rewrite most of it as the client changed there mind again.... so took your advice on RadAjaxManager and all sees good. So thanks.
Tags
Calendar
Asked by
Martin
Top achievements
Rank 1
Answers by
Doncho
Telerik team
Martin
Top achievements
Rank 1
Share this question
or