Posted
on Apr 28, 2011
(permalink)
Hi there,
I am having issues with Export to iCalender from a rad
scheduler .
Here is what i am doing ..
I have a rad scheduler on one page , when i click on "Export"
Button , it actually opens a rad window where i have to select
either of the 2 options ,among which if i select the second
one , i have to export the stuff in shceduler to a csv file.
What i did,
I kept the data in the scheduler in a Session before export is
clicked, and in the rad window i am giving this Session as
datasource to a rad scheduler and then trying to export the
data to a iCalender
Code of what i did :
in Parent.aspx
-------------------------------------------------
<telerik:RadButton ID="btnExport" runat="server" Text="Export"
CommandName="Export" OnClick="btnExport_Click">
<Image EnableImageButton="true" />
</telerik:RadButton>
in Parent.cs
--------------------------------------------------
protected void btnExport_Click(object sender, EventArgs e)
{
RadWindow1.NavigateUrl = "Pages/OpenPopUp";
RadWindow1.VisibleOnPageLoad = true;
}
In the Rad Window(OpenPopUp.aspx)
--------------------------------------------------
<telerik:RadMultiPage runat="server" ID="RadMultiPage1"
SelectedIndex="0" Width="450px">
<telerik:RadPageView
runat="server" ID="RadPageView1" Height="130px">
<div class="tab">
<asp:RadioButtonList ID="rbtnSelect" runat="server"
RepeatDirection="Vertical"
TabIndex="1">
<asp:ListItem Text="Export To Excel" Value="0" Selected="True"
/>
<asp:ListItem Text="Export To iCaleder/Google Calender/Outlook
Calender" Value="1" />
</asp:RadioButtonList>
</div>
</telerik:RadPageView>
</telerik:RadMultiPage>
<telerik:RadButton ID="btnpnlOK" runat="server" Text="Ok"
OnClick="btnpnlOK_Click">
<Image
IsBackgroundImage="true" EnableImageButton="true" />
</telerik:RadButton>
In the Rad Window(OpenPopUp.cs)
--------------------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
#region AJAX Settings
RadAjaxManager mgr = RadAjaxManager.GetCurrent(Page);
mgr.AjaxSettings.Clear();
mgr.AjaxSettings.AddAjaxSetting(mgr, pnlContent);
mgr.AjaxSettings.AddAjaxSetting(btnpnlOK, pnlContent);
#endregion
}
protected void btnpnlOK_Click(object sender, EventArgs e)
{
else //Export to iCalender/google calender/outlook calender
{
oDs.Tables.Add(oDt);
DataView dv = oDs.Tables[0].DefaultView;
DataTable dataTable = new DataTable();
if (dv.Table.Rows.Count > 0)
{
dataTable = dv.Table;
RadScheduler gvShcedule = new RadScheduler();
gvShcedule.DataSource = dataTable;
gvShcedule.DataKeyField = "ScheduleID";
gvShcedule.DataSubjectField = "Name";
gvShcedule.DataStartField = "FromDate";
gvShcedule.DataEndField = "ToDate";
gvShcedule.DataBind();
WriteCalendar(RadScheduler.ExportToICalendar
(gvShcedule.Appointments));
}
}
private void WriteCalendar(string data)
{
HttpResponse response = Page.Response;
response.Clear();
response.Buffer = true;
response.ContentType = "text/calendar";
response.ContentEncoding = Encoding.UTF8;
response.Charset = "utf-8";
response.AddHeader("Content-Disposition",
"attachment;filename=\"RadSchedulerExport.ics\"");
response.Write(data);
response.End();
}
}
Regards