Hello Guys.
I have successfully developed the RadScheduler as per requirement.
But now there are few changes.
At present i am showing my EventTitle in the appointment like in 1st December there are two events.
But now in that Day box instead of title i want to show total the number of events on that day occur in different color box as show in 15th December.
Please see the attached Snapshot for my requirement.
I hope this functionality is possible.
My present code is mentioned below.
OpenAccessProvider
Html-Souce
Code-Behind
Thanks
Pushkar
I have successfully developed the RadScheduler as per requirement.
But now there are few changes.
At present i am showing my EventTitle in the appointment like in 1st December there are two events.
But now in that Day box instead of title i want to show total the number of events on that day occur in different color box as show in 15th December.
Please see the attached Snapshot for my requirement.
I hope this functionality is possible.
My present code is mentioned below.
OpenAccessProvider
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
ERMS.Entities;
using
ERMS.Services;
using
System.Data;
using
Telerik.Web.UI;
using
Telerik.Web.UI.Calendar;
using
Telerik.Web.UI.Scheduler;
/// <summary>
/// Summary description for OpenAccessCustomProvider
/// </summary>
public
class
OpenAccessCustomProvider : OpenAccessProviderBase
{
public
OpenAccessCustomProvider()
{
//
// TODO: Add constructor logic here
//
}
public
override
void
Delete(RadScheduler owner, Appointment appointmentToDelete)
{
throw
new
NotImplementedException();
}
#region " Declaration "
Orders objOrders =
new
Orders();
OrdersService objOrdersService =
new
OrdersService();
TList<Orders> objOrdersList =
new
TList<Orders>();
ViewGetSearchOrdersService objOrderView =
new
ViewGetSearchOrdersService();
DataSet dsOrderView =
new
DataSet();
#endregion
#region " Variables "
Int32 _int_cnt = 0;
#endregion
public
override
IEnumerable<Appointment> GetAppointments(RadScheduler owner)
{
List<Appointment> appList =
new
List<Appointment>();
DateTime dtEndDate =
new
DateTime();
DateTime dtStartDate =
new
DateTime();
dsOrderView = objOrderView.GetPaged(
"CompanyIDF = "
+ (
new
clsPageBase()).SESSION_COMPANYID +
""
,
"OrderDate"
, 0,
int
.MaxValue,
out
_int_cnt).ToDataSet(
true
);
if
(dsOrderView !=
null
&& dsOrderView.Tables.Count > 0)
{
for
(
int
i = 0; i < dsOrderView.Tables[0].Rows.Count; i++)
{
if
(!
string
.IsNullOrEmpty(dsOrderView.Tables[0].Rows[i][
"StartDate"
].ToString()))
{
if
(
string
.IsNullOrEmpty(dsOrderView.Tables[0].Rows[i][
"StartTime"
].ToString()) ==
false
)
{
dtStartDate = Convert.ToDateTime(Convert.ToDateTime(dsOrderView.Tables[0].Rows[i][
"StartDate"
]).ToString(
"MM dd yyyy"
) +
" "
+ dsOrderView.Tables[0].Rows[i][
"StartTime"
].ToString());
}
}
if
(!
string
.IsNullOrEmpty(dsOrderView.Tables[0].Rows[i][
"FinishDate"
].ToString()))
{
if
(
string
.IsNullOrEmpty(dsOrderView.Tables[0].Rows[i][
"FinishTime"
].ToString()) ==
false
)
{
dtEndDate = Convert.ToDateTime(Convert.ToDateTime(dsOrderView.Tables[0].Rows[i][
"FinishDate"
]).ToString(
"MM dd yyyy"
) +
" "
+ dsOrderView.Tables[0].Rows[i][
"FinishTime"
].ToString());
}
}
Appointment newApponitment =
new
Appointment();
newApponitment.Owner = owner;
newApponitment.ID = dsOrderView.Tables[0].Rows[i][
"OrderID"
].ToString();
newApponitment.Subject = dsOrderView.Tables[0].Rows[i][
"Title"
].ToString();
newApponitment.Start = dtStartDate;
newApponitment.End = dtEndDate;
Resource newResource =
new
Resource();
newResource.Type =
"OrderStatus"
;
newResource.Key = newApponitment.ID;
newResource.Text = dsOrderView.Tables[0].Rows[i][
"OrderStatus"
].ToString();
newApponitment.Resources.Add(newResource);
appList.Add(newApponitment);
}
}
return
appList;
}
public
override
IEnumerable<ResourceType> GetResourceTypes(RadScheduler owner)
{
ResourceType[] resourceTypes =
new
ResourceType[1];
resourceTypes[0] =
new
ResourceType(
"OrderStatus"
,
false
);
return
resourceTypes;
}
public
override
IEnumerable<Resource> GetResourcesByType(RadScheduler owner,
string
resourceType)
{
List<Resource> OrderResources =
new
List<Resource>();
TList<OrderStatus> objOrderStatusList =
new
TList<OrderStatus>();
foreach
(OrderStatus item
in
(
new
OrderStatusService()).GetAll())
{
Resource newResource =
new
Resource();
newResource.Type =
"OrderStatus"
;
newResource.Key = item.Id;
newResource.Text = item.Status;
OrderResources.Add(newResource);
}
return
OrderResources;
}
public
override
void
Insert(RadScheduler owner, Appointment appointmentToInsert)
{
throw
new
NotImplementedException();
}
public
override
void
Update(RadScheduler owner, Appointment appointmentToUpdate)
{
throw
new
NotImplementedException();
}
}
Html-Souce
<
telerik:RadScheduler
runat
=
"server"
ID
=
"RadScheduler1"
Skin
=
"Default"
ShowFooter
=
"true"
OverflowBehavior
=
"Scroll"
SelectedView
=
"MonthView"
Height
=
"100%"
NumberOfHoveredRows
=
"1"
DataKeyField
=
"ID"
DataSubjectField
=
"Subject"
DataStartField
=
"Start"
DataEndField
=
"End"
TimelineView-UserSelectable
=
"false"
Culture
=
"(Default)"
StartInFullTime
=
"true"
AllowDelete
=
"false"
AllowEdit
=
"false"
AllowInsert
=
"false"
ShowViewTabs
=
"true"
OnAppointmentDataBound
=
"RadScheduler1_AppointmentDataBound"
ProviderName
=
"OpenAccessProvider"
OnAppointmentCreated
=
"RadScheduler1_AppointmentCreated"
>
<
Localization
AdvancedAllDayEvent
=
"All day"
/>
<
AdvancedForm
DateFormat
=
"M/d/yyyy"
TimeFormat
=
"h:mm tt"
/>
<
AppointmentTemplate
>
<
asp:LinkButton
ID
=
"lnkSubject"
runat
=
"server"
></
asp:LinkButton
>
</
AppointmentTemplate
>
</
telerik:RadScheduler
>
Code-Behind
protected
void
RadScheduler1_AppointmentCreated(
object
sender, AppointmentCreatedEventArgs e)
{
Label lblRed = (Label)e.Container.FindControl(
"lblRed"
);
LinkButton lnkSubject = (LinkButton)e.Container.FindControl(
"lnkSubject"
);
lnkSubject.Text = clsGeneral.ShowSingleQuote(e.Appointment.Subject);
//lnkSubject.Attributes.Add("onClick", "return DoFilter('" + e.Appointment.ID.ToString() + "','" + e.Appointment.Resources.GetResourceByType("OrderStatus").Text + "');");
lnkSubject.Attributes.Add(
"onclick"
,
"return DisplayEventInformation("
+ e.Appointment.ID.ToString() +
" );"
);
lnkSubject.Attributes.Add(
"onmouseover"
,
"javascript:ddrivetip('<b>Click here to manage this Event</b>',250);"
);
lnkSubject.Attributes.Add(
"onmouseout"
,
"javascript:hideddrivetip();"
);
e.Appointment.ToolTip =
""
;
lblRed.Text = e.Appointment.Resources.GetResourceByType(
"OrderStatus"
).Text;
}
protected
void
RadScheduler1_AppointmentDataBound(
object
source, SchedulerEventArgs e)
{
Int64 OrderID = 0;
OrderID = Convert.ToInt64(e.Appointment.ID);
objOrders = objOrdersService.GetById(OrderID);
DateTime dtOrder = Convert.ToDateTime(objOrders.OrderDate);
DateTime dtStartOn = Convert.ToDateTime(e.Appointment.Start);
DateTime dtToday = DateTime.Now;
Int64 days = 0;
Int64 days1 = 0;
days = clsGeneral.DateDiff(clsGeneral.DateInterval.Hour, dtToday, dtStartOn);
days = days / 24;
days1 = clsGeneral.DateDiff(clsGeneral.DateInterval.Hour, dtOrder, dtStartOn);
days1 = days1 / 24;
//For the Highest Priority Order,Consider Today Date and StartUp Date
//For the Rush Order,Consider the Order Date to Start Date Difference
if
(days1 <= 5)
{
e.Appointment.CssClass =
"rsCategoryBlue"
;
}
else
{
if
(days <= 5)
{
e.Appointment.CssClass =
"rsCategoryRed"
;
}
else
if
(days > 5)
{
e.Appointment.CssClass =
"rsCategoryYellow"
;
}
}
}
Thanks
Pushkar