or
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RadSchedulerWebForm.aspx.cs"
Inherits="RadSchedulerWebForm" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
<
telerik:RadStyleSheetManager
ID
=
"RadStyleSheetManager1"
runat
=
"server"
/>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
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"
/>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQuery.js"
/>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQueryInclude.js"
/>
</
Scripts
>
</
telerik:RadScriptManager
>
<
script
type
=
"text/javascript"
>
//Put your JavaScript code here.
function insertAppointment(sender, e) {
var slot = sender.get_activeModel().getTimeSlotFromDomElement(e.get_domEvent().target);
sender.showInsertFormAt(slot);
}
function editAppointment(sender, e) {
var apt = e.get_appointment();
sender.editAppointmentWithConfirmation(apt);
}
</
script
>
<
telerik:RadAjaxLoadingPanel
runat
=
"server"
ID
=
"RadAjaxLoadingPanel1"
/>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadScheduler1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadScheduler1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxPanel
runat
=
"server"
RenderMode
=
"Block"
ID
=
"ajaxPanel"
EnableAJAX
=
"true"
>
<
br
/>
<
br
/>
<
div
>
<
asp:Label
ID
=
"lblInitiaveName"
AssociatedControlID
=
"ddlInitiave"
Text
=
""
runat
=
"server"
>Show Task By Initiative:</
asp:Label
>
<
telerik:RadComboBox
ID
=
"ddlInitiave"
DataTextField
=
"InitiativeName"
DataValueField
=
"ID"
Skin
=
"Outlook"
runat
=
"server"
AutoPostBack
=
"true"
>
</
telerik:RadComboBox
>
<
br
/>
<
br
/>
</
div
>
<
telerik:RadScheduler
runat
=
"server"
ID
=
"RadScheduler1"
Width
=
"100%"
OnFormCreated
=
"RadScheduler1_FormCreated"
OnAppointmentInsert
=
"RadScheduler1_AppointmentInsert"
OnAppointmentUpdate
=
"RadScheduler1_AppointmentUpdate"
OnAppointmentDelete
=
"RadScheduler1_AppointmentDelete"
DataKeyField
=
"ID"
DataSubjectField
=
"Subject"
DataStartField
=
"Start"
DataEndField
=
"End"
DataRecurrenceField
=
"RecurrenceRule"
DataRecurrenceParentKeyField
=
"RecurrenceParentId"
OnClientTimeSlotClick
=
"insertAppointment"
OnClientAppointmentClick
=
"editAppointment"
StartInsertingInAdvancedForm
=
"True"
AppointmentStyleMode
=
"Default"
OnAppointmentDataBound
=
"RadScheduler1_AppointmentDataBound"
AdvancedForm-Modal
=
"true"
CustomAttributeNames
=
"Comments,agencyValue,statusValue,initiativeName,task,assetType"
AdvancedForm-EnableCustomAttributeEditing
=
"true"
SelectedView
=
"MonthView"
Skin
=
"Outlook"
Height
=
"100%"
OverflowBehavior
=
"Expand"
EditFormDateFormat
=
"MM/dd/yyyy"
EnableCustomAttributeEditing
=
"True"
RowHeight
=
"30px"
>
<
ResourceTypes
>
<
telerik:ResourceType
KeyField
=
"ID"
Name
=
"Initiative"
TextField
=
"InitiativeName"
ForeignKeyField
=
"ID"
DataSourceID
=
"SqlDataSourceInitiative"
/>
</
ResourceTypes
>
<
TimelineView
UserSelectable
=
"true"
GroupBy
=
"Initiative"
GroupingDirection
=
"Vertical"
/>
<
InlineInsertTemplate
>
<
div
id
=
"InlineInsertTemplate"
>
<
asp:TextBox
ID
=
"TitleTextBox"
runat
=
"server"
Text='<%# Bind("Subject") %>' TextMode="MultiLine"></
asp:TextBox
>
<
asp:LinkButton
ID
=
"InsertButton"
runat
=
"server"
CommandName
=
"Insert"
>Insert</
asp:LinkButton
>
<
asp:LinkButton
ID
=
"InsertCancelButton"
runat
=
"server"
CausesValidation
=
"False"
CommandName
=
"Cancel"
>Cancel</
asp:LinkButton
>
<
asp:LinkButton
ID
=
"InsertMoreButton"
runat
=
"server"
CommandName
=
"More"
>Advanced</
asp:LinkButton
>
</
div
>
</
InlineInsertTemplate
>
<
InlineEditTemplate
>
<
div
id
=
"InlineEditTemplate"
>
<
asp:TextBox
ID
=
"TitleTextBox"
runat
=
"server"
Text='<%# Bind("Subject") %>' TextMode="MultiLine"></
asp:TextBox
>
<
asp:LinkButton
ID
=
"InsertButton"
runat
=
"server"
CommandName
=
"Update"
>Update</
asp:LinkButton
>
<
asp:LinkButton
ID
=
"InsertCancelButton"
runat
=
"server"
CausesValidation
=
"False"
CommandName
=
"Cancel"
>Cancel</
asp:LinkButton
>
<
asp:LinkButton
ID
=
"InsertMoreButton"
runat
=
"server"
CommandName
=
"More"
>Advanced</
asp:LinkButton
>
</
div
>
</
InlineEditTemplate
>
<
AdvancedForm
EnableCustomAttributeEditing
=
"True"
DateFormat
=
"MM/dd/yyyy"
></
AdvancedForm
>
<
AdvancedEditTemplate
>
<
div
class
=
"rsAdvancedEdit rsAdvancedModal"
style
=
"position: relative"
>
<
div
class
=
"rsModalBgTopLeft"
>
</
div
>
<
div
class
=
"rsModalBgTopRight"
>
</
div
>
<
div
class
=
"rsModalBgBottomLeft"
>
</
div
>
<
div
class
=
"rsModalBgBottomRight"
>
</
div
>
<
div
class
=
"rsAdvTitle"
>
<
h1
class
=
"rsAdvInnerTitle"
>
Update Schedule</
h1
>
<
asp:LinkButton
runat
=
"server"
ID
=
"AdvancedEditCloseButton"
CssClass
=
"rsAdvEditClose"
CommandName
=
"Cancel"
CausesValidation
=
"false"
ToolTip='<%# Container.Appointment.Owner.Localization.AdvancedClose %>'>
<%# Container.Appointment.Owner.Localization.AdvancedClose%>
</
asp:LinkButton
>
</
div
>
<
div
class
=
"rsAdvContentWrapper"
>
<
div
>
<
asp:Label
ID
=
"lblInitiaveName"
AssociatedControlID
=
"ddlInitiaveName"
Text
=
""
runat
=
"server"
>Initiative:</
asp:Label
>
<
telerik:RadComboBox
ID
=
"ddlInitiaveName"
DataTextField
=
"InitiativeName"
DataValueField
=
"ID"
SelectedValue='<%# Bind("initiativeName") %>' runat="server">
</
telerik:RadComboBox
>
<
br
/>
<
br
/>
</
div
>
<
div
>
<
asp:Label
ID
=
"lblTask"
AssociatedControlID
=
"ddlTask"
runat
=
"server"
>Task:</
asp:Label
>
<
telerik:RadComboBox
ID
=
"ddlTask"
DataTextField
=
"Title"
DataValueField
=
"ID"
SelectedValue='<%# Bind("task") %>'
runat="server">
</
telerik:RadComboBox
>
<
br
/>
<
br
/>
</
div
>
<
div
>
<
asp:Label
ID
=
"lblAssetType"
AssociatedControlID
=
"ddlAssetType"
Text
=
""
runat
=
"server"
>AssetType:</
asp:Label
>
<
telerik:RadComboBox
ID
=
"ddlAssetType"
DataTextField
=
"AssetType"
DataValueField
=
"ID"
SelectedValue='<%# Bind("assetType") %>' runat="server">
</
telerik:RadComboBox
>
<
br
/>
<
br
/>
</
div
>
<
div
>
<
asp:Label
ID
=
"lblTitle"
AssociatedControlID
=
"TitleTextBox"
runat
=
"server"
>Description:</
asp:Label
>
<
telerik:RadTextBox
ID
=
"TitleTextBox"
runat
=
"server"
Text='<%# Bind("Subject") %>'>
</
telerik:RadTextBox
>
<
asp:RequiredFieldValidator
runat
=
"server"
ID
=
"rfvTitleTextBox"
ControlToValidate
=
"TitleTextBox"
ErrorMessage
=
"Please enter Description"
>
</
asp:RequiredFieldValidator
>
<
br
/>
<
br
/>
</
div
>
<
div
>
<
asp:Label
ID
=
"lblAgency"
AssociatedControlID
=
"ddlAgency"
runat
=
"server"
>Agency:</
asp:Label
>
<
telerik:RadComboBox
ID
=
"ddlAgency"
runat
=
"server"
DataTextField
=
"Text"
DataValueField
=
"Value"
SelectedValue='<%# Bind("agencyValue") %>'>
</
telerik:RadComboBox
>
<
br
/>
<
br
/>
</
div
>
<
div
>
<
asp:Label
ID
=
"lblStartDate"
AssociatedControlID
=
"StartInput"
runat
=
"server"
>Start Date:</
asp:Label
>
<
telerik:RadDateTimePicker
ID
=
"StartInput"
runat
=
"server"
SelectedDate='<%# Bind("Start") %>'
TimeView-StartTime="09:00:00" TimeView-EndTime="17:00:00" TimeView-Interval="00:30:00"
TimeView-Columns="2">
</
telerik:RadDateTimePicker
>
<%--<
telerik:RadDateInput
ID
=
"StartInput"
SelectedDate='<%# Bind("Start") %>' runat="server">
</
telerik:RadDateInput
>--%><
br
/>
<
br
/>
</
div
>
<
div
>
<
asp:Label
ID
=
"lblEndDate"
AssociatedControlID
=
"EndInput"
runat
=
"server"
>End Date:</
asp:Label
>
<
telerik:RadDateTimePicker
ID
=
"EndInput"
SelectedDate='<%# Bind("End") %>' runat="server"
TimeView-StartTime="09:00:00" TimeView-EndTime="17:00:00" TimeView-Interval="00:30:00"
TimeView-Columns="2">
</
telerik:RadDateTimePicker
>
<%--<
telerik:RadDateInput
ID
=
"EndInput"
SelectedDate='<%# Bind("End") %>' runat="server">
</
telerik:RadDateInput
>--%><
br
/>
<
br
/>
</
div
>
<
div
>
<
asp:Label
ID
=
"lblStatus"
AssociatedControlID
=
"ddlStatus"
runat
=
"server"
>Status:</
asp:Label
>
<
telerik:RadComboBox
ID
=
"ddlStatus"
runat
=
"server"
DataTextField
=
"Text"
DataValueField
=
"Value"
SelectedValue='<%# Bind("statusValue") %>'>
</
telerik:RadComboBox
>
<
br
/>
<
br
/>
</
div
>
<
div
>
<
asp:Label
ID
=
"lblComments"
AssociatedControlID
=
"CommentsTextBox"
runat
=
"server"
>Comments:</
asp:Label
>
<
telerik:RadTextBox
ID
=
"CommentsTextBox"
Rows
=
"5"
Columns
=
"20"
runat
=
"server"
Text='<%# Bind("Comments") %>'
Width="95%" TextMode="MultiLine">
</
telerik:RadTextBox
>
<
asp:RequiredFieldValidator
runat
=
"server"
ID
=
"rfvComments"
ControlToValidate
=
"CommentsTextBox"
ErrorMessage
=
"Please enter Comments"
>
</
asp:RequiredFieldValidator
>
<
br
/>
<
br
/>
</
div
>
<
asp:Panel
runat
=
"server"
ID
=
"ButtonsPanel"
CssClass
=
"rsAdvancedSubmitArea"
>
<
div
class
=
"rsAdvButtonWrapper"
>
<
asp:LinkButton
CommandName
=
"Update"
runat
=
"server"
ID
=
"UpdateButton"
CssClass
=
"rsAdvEditSave"
>
<
span
>Update</
span
>
</
asp:LinkButton
>
<
asp:LinkButton
runat
=
"server"
ID
=
"CancelButton"
CssClass
=
"rsAdvEditCancel"
CommandName
=
"Cancel"
CausesValidation
=
"false"
>
<
span
><%# Container.Appointment.Owner.Localization.Cancel%></
span
>
</
asp:LinkButton
>
</
div
>
</
asp:Panel
>
</
div
>
</
div
>
</
AdvancedEditTemplate
>
<
AdvancedInsertTemplate
>
<
div
class
=
"rsAdvancedEdit rsAdvancedModal"
style
=
"position: relative"
>
<
div
class
=
"rsModalBgTopLeft"
>
</
div
>
<
div
class
=
"rsModalBgTopRight"
>
</
div
>
<
div
class
=
"rsModalBgBottomLeft"
>
</
div
>
<
div
class
=
"rsModalBgBottomRight"
>
</
div
>
<
div
class
=
"rsAdvTitle"
>
<
h1
class
=
"rsAdvInnerTitle"
>
New Schedule</
h1
>
<
asp:LinkButton
runat
=
"server"
ID
=
"AdvancedEditCloseButton"
CssClass
=
"rsAdvEditClose"
CommandName
=
"Cancel"
CausesValidation
=
"false"
ToolTip='<%# Container.Appointment.Owner.Localization.AdvancedClose %>'>
<%# Container.Appointment.Owner.Localization.AdvancedClose%>
</
asp:LinkButton
>
</
div
>
<
div
class
=
"rsAdvContentWrapper"
>
<
div
>
<
asp:Label
ID
=
"lblInitiaveName"
AssociatedControlID
=
"ddlInitiaveName"
Text
=
""
runat
=
"server"
>Initiative:</
asp:Label
>
<
telerik:RadComboBox
ID
=
"ddlInitiaveName"
DataTextField
=
"InitiativeName"
DataValueField
=
"ID"
SelectedValue='<%# Bind("initiativeName") %>' runat="server">
</
telerik:RadComboBox
>
<
asp:CompareValidator
ID
=
"initiaveValidator"
runat
=
"server"
ControlToValidate
=
"ddlInitiaveName"
ValueToCompare
=
" --- Select Initiative --- "
Operator
=
"NotEqual"
ErrorMessage
=
"Please select Initiative"
></
asp:CompareValidator
>
<
br
/>
<
br
/>
</
div
>
<
div
>
<
asp:Label
ID
=
"lblTask"
AssociatedControlID
=
"ddlTask"
runat
=
"server"
>Task:</
asp:Label
>
<
telerik:RadComboBox
ID
=
"ddlTask"
DataTextField
=
"Title"
DataValueField
=
"ID"
SelectedValue='<%# Bind("task") %>'
runat="server">
</
telerik:RadComboBox
>
<
br
/>
<
br
/>
</
div
>
<
div
>
<
asp:Label
ID
=
"lblAssetType"
AssociatedControlID
=
"ddlAssetType"
Text
=
""
runat
=
"server"
>AssetType:</
asp:Label
>
<
telerik:RadComboBox
ID
=
"ddlAssetType"
DataTextField
=
"AssetType"
DataValueField
=
"ID"
SelectedValue='<%# Bind("assetType") %>' runat="server">
</
telerik:RadComboBox
>
<
br
/>
<
br
/>
</
div
>
<
div
>
<
asp:Label
ID
=
"lblTitle"
AssociatedControlID
=
"TitleTextBox"
runat
=
"server"
>Description:</
asp:Label
>
<
telerik:RadTextBox
ID
=
"TitleTextBox"
runat
=
"server"
Text='<%# Bind("Subject") %>'>
</
telerik:RadTextBox
>
<
asp:RequiredFieldValidator
runat
=
"server"
ID
=
"rfvTitleTextBox"
ControlToValidate
=
"TitleTextBox"
ErrorMessage
=
"Please enter Description"
>
</
asp:RequiredFieldValidator
>
<
br
/>
<
br
/>
</
div
>
<
div
>
<
asp:Label
ID
=
"lblAgency"
AssociatedControlID
=
"ddlAgency"
runat
=
"server"
>Agency:</
asp:Label
>
<
telerik:RadComboBox
ID
=
"ddlAgency"
runat
=
"server"
DataTextField
=
"Text"
DataValueField
=
"Value"
SelectedValue='<%# Bind("agencyValue") %>'>
</
telerik:RadComboBox
>
<
br
/>
<
br
/>
</
div
>
<
div
>
<
asp:Label
ID
=
"lblStartDate"
AssociatedControlID
=
"StartInput"
runat
=
"server"
>Start Date:</
asp:Label
>
<
telerik:RadDateTimePicker
ID
=
"StartInput"
runat
=
"server"
SelectedDate='<%# Bind("Start") %>'
TimeView-StartTime="09:00:00" TimeView-EndTime="17:00:00" TimeView-Interval="00:30:00"
TimeView-Columns="2">
</
telerik:RadDateTimePicker
>
<%--<
telerik:RadDateInput
ID
=
"StartInput"
SelectedDate='<%# Bind("Start") %>' runat="server">
</
telerik:RadDateInput
>--%><
br
/>
<
br
/>
</
div
>
<
div
>
<
asp:Label
ID
=
"lblEndDate"
AssociatedControlID
=
"EndInput"
runat
=
"server"
>End Date:</
asp:Label
>
<
telerik:RadDateTimePicker
ID
=
"EndInput"
SelectedDate='<%# Bind("End") %>' runat="server"
TimeView-StartTime="09:00:00" TimeView-EndTime="17:00:00" TimeView-Interval="00:30:00"
TimeView-Columns="2">
</
telerik:RadDateTimePicker
>
<%--<
telerik:RadDateInput
ID
=
"EndInput"
SelectedDate='<%# Bind("End") %>' runat="server">
</
telerik:RadDateInput
>--%><
br
/>
<
br
/>
</
div
>
<
div
>
<
asp:Label
ID
=
"lblStatus"
AssociatedControlID
=
"ddlStatus"
runat
=
"server"
>Status:</
asp:Label
>
<
telerik:RadComboBox
ID
=
"ddlStatus"
runat
=
"server"
DataTextField
=
"Text"
DataValueField
=
"Value"
SelectedValue='<%# Bind("statusValue") %>'>
</
telerik:RadComboBox
>
<
br
/>
<
br
/>
</
div
>
<
div
>
<
asp:Label
ID
=
"lblComments"
AssociatedControlID
=
"CommentsTextBox"
runat
=
"server"
>Comments:</
asp:Label
>
<
telerik:RadTextBox
ID
=
"CommentsTextBox"
Rows
=
"5"
Columns
=
"20"
runat
=
"server"
Text='<%# Bind("Comments") %>'
Width="95%" TextMode="MultiLine">
</
telerik:RadTextBox
>
<
asp:RequiredFieldValidator
runat
=
"server"
ID
=
"rfvComments"
ControlToValidate
=
"CommentsTextBox"
ErrorMessage
=
"Please enter Comments"
>
</
asp:RequiredFieldValidator
>
<
br
/>
<
br
/>
</
div
>
<
asp:Panel
runat
=
"server"
ID
=
"ButtonsPanel"
CssClass
=
"rsAdvancedSubmitArea"
>
<
div
class
=
"rsAdvButtonWrapper"
>
<
asp:LinkButton
CommandName
=
"Insert"
runat
=
"server"
ID
=
"SaveButton"
CssClass
=
"rsAdvEditSave"
CausesValidation
=
"true"
>
<
span
><%# Container.Appointment.Owner.Localization.Save%></
span
>
</
asp:LinkButton
>
<
asp:LinkButton
runat
=
"server"
ID
=
"CancelButton"
CssClass
=
"rsAdvEditCancel"
CommandName
=
"Cancel"
CausesValidation
=
"false"
>
<
span
><%# Container.Appointment.Owner.Localization.Cancel%></
span
>
</
asp:LinkButton
>
</
div
>
</
asp:Panel
>
</
div
>
</
div
>
</
AdvancedInsertTemplate
>
<
TimeSlotContextMenus
>
<
telerik:RadSchedulerContextMenu
runat
=
"server"
ID
=
"SchedulerTimeSlotContextMenu"
>
<
Items
>
<
telerik:RadMenuItem
Text
=
"New Schedule"
Value
=
"CommandAddAppointment"
/>
</
Items
>
</
telerik:RadSchedulerContextMenu
>
</
TimeSlotContextMenus
>
<
TimeSlotContextMenuSettings
EnableDefault
=
"true"
/>
<
AppointmentContextMenuSettings
EnableDefault
=
"true"
/>
</
telerik:RadScheduler
>
</
telerik:RadAjaxPanel
>
<
br
/>
<
telerik:RadButton
ID
=
"btnExport"
runat
=
"server"
Text
=
"Exprot to Excel"
Skin
=
"Outlook"
>
</
telerik:RadButton
>
<
asp:SqlDataSource
ID
=
"SqlDataSourceInitiative"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:TelerikConnectionString %>"
SelectCommand="SELECT ID,InitiativeName FROM [Initiatives]"></
asp:SqlDataSource
>
<%--<
telerik:RadScheduler
ID
=
"RadScheduler2"
runat
=
"server"
DataEndField
=
"End"
Visible
=
"false"
DataKeyField
=
"ID"
DataRecurrenceField
=
"RecurrenceRule"
DataRecurrenceParentKeyField
=
"RecurrenceParentID"
DataSourceID
=
"SqlDataSource1"
DataStartField
=
"Start"
DataSubjectField
=
"Subject"
>
<
ResourceTypes
>
<
telerik:ResourceType
DataSourceID
=
"SqlDataSource2"
ForeignKeyField
=
"UserID"
KeyField
=
"ID"
Name
=
"Users"
TextField
=
"UserName"
/>
</
ResourceTypes
>
</
telerik:RadScheduler
>
<
asp:SqlDataSource
ID
=
"SqlDataSource2"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:TelerikConnectionString %>"
SelectCommand="SELECT [ID], [UserName] FROM [Users]"></
asp:SqlDataSource
>--%>
</
form
>
</
body
>
</
html
>
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Collections.Generic;
using System.Configuration;
using System.Web.Security;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Telerik.Web.UI;
using System.Data.SqlClient;
using System.Drawing;
using Microsoft.Office.Excel;
using Excel= Microsoft.Office.Interop.Excel;
using System.Reflection;
using System.Collections;
public partial class RadSchedulerWebForm : System.Web.UI.Page
{
string appointmentId = string.Empty;
string initiativeValue = string.Empty;
int initiaveId;
string taskValue = string.Empty;
string assetType = string.Empty;
string agencyValue = string.Empty;
string statusValue = string.Empty;
string comment = string.Empty;
string sql = string.Empty;
DateTime startdDate = DateTime.Now;
DateTime enddDate = DateTime.Now;
System.Data.DataTable appointment;
System.Data.DataTable status;
SqlDataAdapter adapter;
SqlConnection conn;
SqlCommand cmd;
private List<
AppointmentInfo
> Appointments
{
get
{
List<
AppointmentInfo
> sessApts = Session["Appointments"] as List<
AppointmentInfo
>;
if (sessApts == null)
{
sessApts = new List<
AppointmentInfo
>();
Session["Appointments"] = sessApts;
}
return sessApts;
}
}
private System.Data.DataTable dtApp
{
get
{
System.Data.DataTable sessdtApp = Session["dtApp"] as System.Data.DataTable;
if (sessdtApp == null)
{
sessdtApp = new System.Data.DataTable();
Session["Appointments"] = sessdtApp;
}
return sessdtApp;
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
if (!IsPostBack)
{
//Session.Remove("Appointments");
//RadScheduler1.DataSource = GetAppointments();
LoadInitiave(ddlInitiave);
RadScheduler1.DataSource = GetAppointments();
}
// RadScheduler1.DataSource = Appointments;
ddlInitiave.SelectedIndexChanged += new RadComboBoxSelectedIndexChangedEventHandler(ddlInitiave_SelectedIndexChanged);
btnExport.Click += new EventHandler(btnExport_Click);
RadScheduler1.SelectedView = SchedulerViewType.TimelineView;
//RadScheduler1.TimelineView.GroupBy=
}
protected void btnExport_Click(object sender, EventArgs e)
{
//// throw new NotImplementedException();
// appointment = new System.Data.DataTable();
// appointment = GetAppointments();
// //ExportToSpreadsheet(appointment, "TestExcel");
// Excel_FromDataTable(appointment);
}
protected void ddlInitiave_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
if (ddlInitiave.SelectedItem.Value == "0")
{
RadScheduler1.DataSource = GetAppointments();
}
else
{
RadScheduler1.DataSource = GetAppointmentByInitiative(ddlInitiave.SelectedValue);
}
}
protected void RadScheduler1_AppointmentDataBound(object sender, SchedulerEventArgs e)
{
//To apply color on each appointments
appointmentId = Convert.ToString(e.Appointment.ID);
//After Inserting and appointment
if (appointmentId == string.Empty)
{
statusValue = e.Appointment.Attributes["statusValue"];
{
switch (statusValue)
{
case "1": //Scheduled
e.Appointment.BackColor = Color.SkyBlue;
break;
case "2": //Happenned
e.Appointment.BackColor = Color.PeachPuff;
break;
case "3": //Didnt Happen
e.Appointment.BackColor = Color.Orange;
break;
default:
break;
}
}
}
else
{
//for AppointmentDataBound
status = GetStatusByAppointmentId(appointmentId);
if (status.Rows.Count > 0)
{
foreach (DataRow row in status.Rows)
{
statusValue = row["Status"].ToString();
switch (statusValue)
{
case "1": //Scheduled
e.Appointment.BackColor = Color.SkyBlue;
break;
case "2": //Happenned
e.Appointment.BackColor = Color.PeachPuff;
break;
case "3": //Didnt Happen
e.Appointment.BackColor = Color.Orange;
break;
default:
break;
}
}
}
}
}
protected void RadScheduler1_AppointmentInsert(object sender, SchedulerCancelEventArgs e)
{
initiaveId=Convert.ToInt32(e.Appointment.Attributes["initiativeName"]);
initiativeValue = e.Appointment.Attributes["initiativeName"];
taskValue = e.Appointment.Attributes["task"];
assetType = e.Appointment.Attributes["assetType"];
agencyValue = e.Appointment.Attributes["agencyValue"];
statusValue = e.Appointment.Attributes["statusValue"];
comment = e.Appointment.Attributes["Comments"];
InsertAppointment(e.Appointment.Subject, Convert.ToDateTime(e.Appointment.Start), Convert.ToDateTime(e.Appointment.End), initiaveId, taskValue, assetType, agencyValue, statusValue, comment);
}
protected void RadScheduler1_AppointmentUpdate(object sender, AppointmentUpdateEventArgs e)
{
//To Update Appointment
appointmentId = e.Appointment.ID.ToString();
initiativeValue = e.ModifiedAppointment.Attributes["initiativeName"];
taskValue = e.ModifiedAppointment.Attributes["task"];
assetType = e.ModifiedAppointment.Attributes["assetType"];
agencyValue = e.ModifiedAppointment.Attributes["agencyValue"];
statusValue = e.ModifiedAppointment.Attributes["statusValue"];
comment = e.ModifiedAppointment.Attributes["Comments"];
if (initiativeValue == null || taskValue == null || agencyValue == null || statusValue == string.Empty || comment == string.Empty)
{
System.Data.DataTable dt = GetAppointmentById(appointmentId);
foreach (DataRow row in dt.Rows)
{
initiativeValue = row["InitiativeId"].ToString();
taskValue = row["TaskId"].ToString();
assetType = row["AssetType"].ToString();
agencyValue = row["Agency"].ToString();
statusValue = row["Status"].ToString();
comment = row["Description"].ToString();
}
}
UpdateAppointment(appointmentId, e.ModifiedAppointment.Subject, Convert.ToDateTime(e.ModifiedAppointment.Start), Convert.ToDateTime(e.ModifiedAppointment.End), initiativeValue, taskValue,assetType,agencyValue, statusValue, comment);
//AppointmentInfo ai = FindById(e.ModifiedAppointment.ID);
//ai.CopyInfo(e.ModifiedAppointment);
}
protected void RadScheduler1_AppointmentDelete(object sender, SchedulerCancelEventArgs e)
{
//To Delete Appointment
// Appointments.Remove(FindById(e.Appointment.ID));
appointmentId = e.Appointment.ID.ToString();
DeleteAppointment(appointmentId);
}
private AppointmentInfo FindById(object ID)
{
foreach (AppointmentInfo ai in Appointments)
{
if (ai.ID.Equals(ID))
{
return ai;
}
}
return null;
}
protected void RadScheduler1_FormCreated(object sender, SchedulerFormCreatedEventArgs e)
{
RadScheduler scheduler = (RadScheduler)sender;
//AdvanceInsert Mode
if (e.Container.Mode == SchedulerFormMode.AdvancedInsert)
{
RadComboBox ddlInitiaveName = (RadComboBox)e.Container.FindControl("ddlInitiaveName");
LoadInitiave(ddlInitiaveName);
RadComboBox ddlTask = (RadComboBox)e.Container.FindControl("ddlTask");
LoadTask(ddlTask);
RadComboBox ddlAssetType = (RadComboBox)e.Container.FindControl("ddlAssetType");
LoadAssetType(ddlAssetType);
RadTextBox subjectBox = (RadTextBox)e.Container.FindControl("TitleTextBox");
subjectBox.Text = e.Appointment.Subject;
RadComboBox ddlAgency = (RadComboBox)e.Container.FindControl("ddlAgency");
ddlAgency.LoadContentFile("~/App_Data/AgencyItems.xml");
RadDateTimePicker startInput = (RadDateTimePicker)e.Container.FindControl("StartInput");
startInput.DateInput.DateFormat = scheduler.AdvancedForm.DateFormat + " " + scheduler.AdvancedForm.TimeFormat;
startInput.SelectedDate = RadScheduler1.DisplayToUtc(e.Appointment.Start);
RadDateTimePicker endInput = (RadDateTimePicker)e.Container.FindControl("EndInput");
endInput.DateInput.DateFormat = scheduler.AdvancedForm.DateFormat + " " + scheduler.AdvancedForm.TimeFormat;
endInput.SelectedDate = RadScheduler1.DisplayToUtc(e.Appointment.End);
RadComboBox ddlStatus = (RadComboBox)e.Container.FindControl("ddlStatus");
ddlStatus.LoadContentFile("~/App_Data/StatusItems.xml");
}
//AdvanceEdit Mode
if (e.Container.Mode == SchedulerFormMode.AdvancedEdit)
{
appointmentId = e.Appointment.ID.ToString();
if (appointmentId != string.Empty)
{
System.Data.DataTable dt = GetAppointmentById(appointmentId);
foreach (DataRow row in dt.Rows)
{
initiativeValue = row["InitiativeId"].ToString();
taskValue = row["TaskId"].ToString();
assetType = row["AssetType"].ToString();
agencyValue = row["Agency"].ToString();
startdDate = Convert.ToDateTime(row["Start"].ToString());
enddDate = Convert.ToDateTime(row["End"].ToString());
statusValue = row["Status"].ToString();
comment = row["Description"].ToString();
}
RadComboBox ddlInitiaveName = (RadComboBox)e.Container.FindControl("ddlInitiaveName");
LoadInitiave(ddlInitiaveName);
ddlInitiaveName.SelectedValue = initiativeValue;
RadComboBox ddlTask = (RadComboBox)e.Container.FindControl("ddlTask");
LoadTask(ddlTask);
ddlTask.SelectedValue = taskValue;
RadComboBox ddlAssetType = (RadComboBox)e.Container.FindControl("ddlAssetType");
LoadAssetType(ddlAssetType);
ddlAssetType.SelectedValue = assetType;
RadComboBox ddlAgency = (RadComboBox)e.Container.FindControl("ddlAgency");
ddlAgency.LoadContentFile("~/App_Data/AgencyItems.xml");
ddlAgency.SelectedValue = agencyValue;
RadDateTimePicker startInput = (RadDateTimePicker)e.Container.FindControl("StartInput");
startInput.DateInput.DateFormat = scheduler.AdvancedForm.DateFormat + " " + scheduler.AdvancedForm.TimeFormat;
startInput.SelectedDate = startdDate;
RadDateTimePicker endInput = (RadDateTimePicker)e.Container.FindControl("EndInput");
endInput.DateInput.DateFormat = scheduler.AdvancedForm.DateFormat + " " + scheduler.AdvancedForm.TimeFormat;
endInput.SelectedDate = enddDate;
RadComboBox ddlStatus = (RadComboBox)e.Container.FindControl("ddlStatus");
ddlStatus.LoadContentFile("~/App_Data/StatusItems.xml");
ddlStatus.SelectedValue = statusValue;
RadTextBox commentsBox = (RadTextBox)e.Container.FindControl("CommentsTextBox");
commentsBox.Text = comment;
}
}
}
protected System.Data.DataTable GetAppointments()
{
appointment = new System.Data.DataTable();
conn = new SqlConnection(GetConnectionString());
adapter = new SqlDataAdapter("SELECT ID,Subject,Start,[End],InitiativeId,TaskId,AssetType,Agency,Status,Description,RecurrenceRule,RecurrenceParentId FROM Appointments order by ID", conn);
adapter.Fill(appointment);
return appointment;
}
//protected System.Data.DataTable GetAppointments()
//{
// appointment = new System.Data.DataTable();
// conn = new SqlConnection(GetConnectionString());
// adapter = new SqlDataAdapter("SELECT from Initiavtiv", conn);
// adapter.Fill(appointment);
// return appointment;
//}
protected System.Data.DataTable GetAppointmentById(string appointmentid)
{
appointment = new System.Data.DataTable();
conn = new SqlConnection(GetConnectionString());
adapter = new SqlDataAdapter("SELECT Subject,Start,[End],InitiativeId,TaskId,AssetType,Agency,Status,Description,RecurrenceRule,RecurrenceParentId FROM Appointments WHERE ID=" + appointmentid + "", conn);
adapter.Fill(appointment);
return appointment;
}
protected System.Data.DataTable GetStatusByAppointmentId(string appointmentid)
{
status = new System.Data.DataTable();
conn = new SqlConnection(GetConnectionString());
adapter = new SqlDataAdapter("SELECT Status FROM Appointments WHERE ID=" + appointmentid + "", conn);
adapter.Fill(status);
return status;
}
protected System.Data.DataTable GetAppointmentByInitiative(string Initiative)
{
appointment = new System.Data.DataTable();
conn = new SqlConnection(GetConnectionString());
adapter = new SqlDataAdapter("SELECT ID,Subject,Start,[End],TaskId,AssetType,Agency,Status,Description,RecurrenceRule,RecurrenceParentId FROM Appointments WHERE InitiativeId=" + Initiative + "", conn);
adapter.Fill(appointment);
return appointment;
}
protected void LoadInitiave(RadComboBox ddlinitiavename)
{
try
{
conn = new SqlConnection(GetConnectionString());
adapter = new SqlDataAdapter("SELECT InitiativeName,ID FROM [Initiatives] order by ID", conn);
System.Data.DataTable dt = new System.Data.DataTable();
adapter.Fill(dt);
ddlinitiavename.DataTextField = "InitiativeName";
ddlinitiavename.DataValueField = "ID";
ddlinitiavename.DataSource = dt;
RadComboBoxItem firstitem = new RadComboBoxItem();
firstitem.Text = " --- Select Initiative --- ";
firstitem.Value = "0";
ddlinitiavename.Items.Add(firstitem);
foreach (DataRow row in dt.Rows)
{
RadComboBoxItem item = new RadComboBoxItem();
item.Text = row["InitiativeName"].ToString();
item.Value = row["ID"].ToString();
ddlinitiavename.Items.Add(item);
}
}
catch (Exception ex)
{ }
finally
{
conn.Close();
}
}
protected void LoadTask(RadComboBox ddltask)
{
try
{
conn = new SqlConnection(GetConnectionString());
adapter = new SqlDataAdapter("SELECT Title,ID FROM [Master Task List] order by ID", conn);
System.Data.DataTable dt = new System.Data.DataTable();
adapter.Fill(dt);
ddltask.DataTextField = "Title";
ddltask.DataValueField = "ID";
ddltask.DataSource = dt;
foreach (DataRow row in dt.Rows)
{
RadComboBoxItem item = new RadComboBoxItem();
item.Text = row["Title"].ToString();
item.Value = row["ID"].ToString();
ddltask.Items.Add(item);
}
}
catch (Exception ex)
{ }
finally
{
conn.Close();
}
}
protected void LoadAssetType(RadComboBox ddlassettype)
{
try
{
conn = new SqlConnection(GetConnectionString());
adapter = new SqlDataAdapter("SELECT ID,AssetType FROM AssetType order by ID", conn);
System.Data.DataTable dt = new System.Data.DataTable();
adapter.Fill(dt);
ddlassettype.DataTextField = "AssetType";
ddlassettype.DataValueField = "ID";
ddlassettype.DataSource = dt;
foreach (DataRow row in dt.Rows)
{
RadComboBoxItem item = new RadComboBoxItem();
item.Text = row["AssetType"].ToString();
item.Value = row["ID"].ToString();
ddlassettype.Items.Add(item);
}
}
catch (Exception ex)
{ }
finally
{
conn.Close();
}
}
public string GetConnectionString()
{
return System.Configuration.ConfigurationManager.ConnectionStrings["TelerikConnectionString"].ConnectionString;
}
private void InsertAppointment(string subject, DateTime start, DateTime end, int initiative, string task,string assettype, string agency, string status, string comments)
{
conn = new SqlConnection(GetConnectionString());
sql = "INSERT INTO Appointments (Subject,Start,[End],InitiativeId,TaskId,AssetType,Agency,Status,Description) VALUES (@subject,@start,@end,@initiative,@task,@assettype,@agency,@status,@comments)";
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
//cmd.Parameters.AddWithValue("@id",Guid.NewGuid().ToString() );
cmd.Parameters.AddWithValue("@subject", subject);
cmd.Parameters.AddWithValue("@start", start);
cmd.Parameters.AddWithValue("@end", end);
cmd.Parameters.AddWithValue("@initiative", initiative);
cmd.Parameters.AddWithValue("@task", task);
cmd.Parameters.AddWithValue("@assettype", assettype);
cmd.Parameters.AddWithValue("@agency", agency);
cmd.Parameters.AddWithValue("@status", status);
cmd.Parameters.AddWithValue("@comments", comments);
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
}
catch (System.Data.SqlClient.SqlException ex)
{
string msg = "Insert Error:";
msg += ex.Message;
throw new Exception(msg);
}
finally
{
conn.Close();
}
}
private void UpdateAppointment(string appointmentId, string subject, DateTime start, DateTime end, string initiative, string task,string assettype, string agency, string status, string comments)
{
conn = new SqlConnection(GetConnectionString());
sql = "UPDATE Appointments SET Subject=@subject,Start=@start,[End]=@end,InitiativeId=@initiative,TaskId=@task,AssetType=@assettype,Agency=@agency,Status=@status,Description=@comments WHERE ID=" + appointmentId + "";
try
{
conn.Open();
cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@subject", subject);
cmd.Parameters.AddWithValue("@start", start);
cmd.Parameters.AddWithValue("@end", end);
cmd.Parameters.AddWithValue("@initiative", initiative);
cmd.Parameters.AddWithValue("@task", task);
cmd.Parameters.AddWithValue("@assettype", assettype);
cmd.Parameters.AddWithValue("@agency", agency);
cmd.Parameters.AddWithValue("@status", status);
cmd.Parameters.AddWithValue("@comments", comments);
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
}
catch (System.Data.SqlClient.SqlException ex)
{
string msg = "Update Error:";
msg += ex.Message;
throw new Exception(msg);
}
finally
{
conn.Close();
}
}
private void DeleteAppointment(string appointmentId)
{
conn = new SqlConnection(GetConnectionString());
sql = "DELETE FROM Appointments WHERE ID=@id";
try
{
conn.Open();
cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@id", appointmentId);
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
}
catch (System.Data.SqlClient.SqlException ex)
{
string msg = "Delete Error:";
msg += ex.Message;
throw new Exception(msg);
}
finally
{
conn.Close();
}
}
public static void ExportToSpreadsheet(System.Data.DataTable table, string name)
{
HttpContext context = HttpContext.Current;
context.Response.Clear();
foreach (DataColumn column in table.Columns)
{
context.Response.Write(column.ColumnName + ";");
}
context.Response.Write(Environment.NewLine);
foreach (DataRow row in table.Rows)
{
for (int i = 0; i < table.Columns.Count; i++)
{
context.Response.Write(row[i].ToString().Replace(";", string.Empty) + ";");
}
context.Response.Write(Environment.NewLine);
}
context.Response.ContentType = "text/csv";
context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + name + ".csv");
context.Response.End();
}
// TO USE:
// 1) include COM reference to Microsoft Excel Object library
// add namespace...
//using Excel = Microsoft.Office.Interop.Excel;
private static void Excel_FromDataTable(System.Data.DataTable dt)
{
// Create an Excel object and add workbook...
Excel.ApplicationClass excel = new Excel.ApplicationClass();
Excel.Workbook workbook = excel.Application.Workbooks.Add(true); // true for object template???
// Add column headings...
int iCol = 0;
foreach (DataColumn c in dt.Columns)
{
iCol++;
excel.Cells[1, iCol] = c.ColumnName;
}
// for each row of data...
int iRow = 0;
foreach (DataRow r in dt.Rows)
{
iRow++;
// add each row's cell data...
iCol = 0;
foreach (DataColumn c in dt.Columns)
{
iCol++;
excel.Cells[iRow + 1, iCol] = r[c.ColumnName];
}
}
// Global missing reference for objects we are not defining...
object missing = System.Reflection.Missing.Value;
// If wanting to Save the workbook...
workbook.SaveAs("Scheduler.xls",
Excel.XlFileFormat.xlXMLSpreadsheet, missing, missing,
false, false, Excel.XlSaveAsAccessMode.xlNoChange,
missing, missing, missing, missing, missing);
// If wanting to make Excel visible and activate the worksheet...
excel.Visible = true;
Excel.Worksheet worksheet = (Excel.Worksheet)excel.ActiveSheet;
((Excel._Worksheet)worksheet).Activate();
// If wanting excel to shutdown...
((Excel._Application)excel).Quit();
}
}
for (int i = 0; i < RadGrid1.PageSize; i++) {
RadGrid1.EditIndexes.Add(i);
}
RadGrid1.Rebind();
<
telerik:GridClientSelectColumn
UniqueName
=
"Apply"
>
<
HeaderStyle
Width
=
"50px"
/>
<
ItemStyle
Width
=
"50px"
/>
</
telerik:GridClientSelectColumn
>
<
httpHandlers
>
<
add
path
=
"Telerik.Web.UI.WebResource.axd"
type
=
"Telerik.Web.UI.WebResourceSession"
verb
=
"*"
validate
=
"false"
/>
</
httpHandlers
>
<
handlers
>
<
add
name
=
"Telerik_Web_UI_WebResource_axd"
path
=
"Telerik.Web.UI.WebResource.axd"
verb
=
"*"
type
=
"Telerik.Web.UI.WebResourceSession, Telerik.Web.UI"
preCondition
=
"integratedMode"
/>
</
handlers
>
<location path="Telerik.Web.UI.WebResource.axd">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="Telerik.Web.UI.WebResourceSession.axd">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<
asp:MultiView
ID
=
"mvCaptcha"
runat
=
"server"
ActiveViewIndex
=
"0"
>
<
asp:View
ID
=
"vCaptcha"
runat
=
"server"
>
<
asp:Panel
runat
=
"server"
ID
=
"pnlCaptcha"
class
=
"pnlCaptcha"
>
<
div
class
=
"left"
style
=
"text-align: left;"
>
<
telerik:RadCaptcha
runat
=
"server"
ID
=
"cptPassword"
ValidationGroup
=
"Verification"
ErrorMessage
=
"Captcha message was incorrect"
Display
=
"None"
CaptchaImage-EnableCaptchaAudio
=
"true"
CaptchaTextBoxLabel
=
""
CaptchaAudioLinkButtonText
=
""
ImageStorageLocation
=
"Session"
>
</
telerik:RadCaptcha
>
</
div
>
<
div
class
=
"left"
>
<
asp:LinkButton
ID
=
"btnRefreshCaptcha"
runat
=
"server"
><
img
class
=
"imgRefreshCaptcha"
alt
=
"Refresh Captcha"
src
=
"./App_Themes/public/Images/imgCaptchaRefresh.png"
/></
asp:LinkButton
></
div
>
</
asp:Panel
>
</
asp:View
>
<
asp:View
ID
=
"vCaptchaPassed"
runat
=
"server"
>
You have already passed the captcha.
</
asp:View
>
</
asp:MultiView
>