Hello,
We purchased Telerik control, and we are using it in our firm.
In one of my dotnet webapplication i wanted to use scheduler as TimelineView ,with GroupBy of my custom attribure field(which is combobox) here it is Initiative.
Appointments are there with initiative field, it will display without GroupBy ,but when i will configure with GroupBy=Initiative none of the data will display in my scheduler.
Below is my code :Aspx page
and code file
Kinldy suggest me where i made mistake ?
If i can solve it by adding Resoueces then how can i do that with Resources ?
Reply me ASAP.
Thanks a lot,
Nirav
We purchased Telerik control, and we are using it in our firm.
In one of my dotnet webapplication i wanted to use scheduler as TimelineView ,with GroupBy of my custom attribure field(which is combobox) here it is Initiative.
Appointments are there with initiative field, it will display without GroupBy ,but when i will configure with GroupBy=Initiative none of the data will display in my scheduler.
Below is my code :Aspx page
<%@ 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>and code file
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(); }}Kinldy suggest me where i made mistake ?
If i can solve it by adding Resoueces then how can i do that with Resources ?
Reply me ASAP.
Thanks a lot,
Nirav