We just recently upgrade our control set and it seemed to have broke our implementation of using the radtooltipmanager with the radscheduler. I have been following the tutorial below and have created a test project that is the exact same and can't seem to get it working.
http://demos.telerik.com/aspnet-ajax/scheduler/examples/radtooltip/defaultcs.aspx
I took all the code from the demo page and put it into a test page. When the AjaxUpdate code runs as seen below, the FindByID returns a null. Also when I rollover the appointment the AppointmentCreated method gets called as well.
Code-Behind
html
If you could point me in the right directory that would be great. I have attached the test file I have been working on.
thanks
http://demos.telerik.com/aspnet-ajax/scheduler/examples/radtooltip/defaultcs.aspx
I took all the code from the demo page and put it into a test page. When the AjaxUpdate code runs as seen below, the FindByID returns a null. Also when I rollover the appointment the AppointmentCreated method gets called as well.
Code-Behind
private void Page_Load(object sender, EventArgs e)
{
RadScheduler1.AppointmentCreated += RadScheduler1_AppointmentCreated;
RadScheduler1.DataBound += RadScheduler1_DataBound;
this.RadScheduler1.DataSource = GetApps();
this.RadScheduler1.DataBind();
}
private List<
Appointment
> GetApps()
{
List<
Appointment
> appList = new List<
Appointment
>();
for (int i = 0; i < 10; i++)
{
Appointment app = new Appointment();
app.ID = Guid.NewGuid();
app.Subject = "Apt" + i.ToString();
app.Start = DateTime.Now.AddDays(i);
app.End = DateTime.Now.AddDays(i).AddMinutes(30);
appList.Add(app);
}
return appList;
}
protected void RadScheduler1_AppointmentCreated(object sender, AppointmentCreatedEventArgs e)
{
if (e.Appointment.Visible && !IsAppointmentRegisteredForTooltip(e.Appointment))
{
string id = e.Appointment.ID.ToString();
foreach (string domElementID in e.Appointment.DomElements)
{
RadToolTipManager1.TargetControls.Add(domElementID, id, true);
}
}
}
private bool IsAppointmentRegisteredForTooltip(Appointment apt)
{
foreach (ToolTipTargetControl targetControl in RadToolTipManager1.TargetControls)
{
if (apt.DomElements.Contains(targetControl.TargetControlID))
{
return true;
}
}
return false;
}
protected void RadScheduler1_DataBound(object sender, EventArgs e)
{
RadToolTipManager1.TargetControls.Clear();
ScriptManager.RegisterStartupScript(this, typeof(Page), "HideToolTip", "hideActiveToolTip();", true);
}
protected void RadToolTipManager1_AjaxUpdate(object sender, ToolTipUpdateEventArgs e)
{
Appointment apt = RadScheduler1.Appointments.FindByID(new Guid(e.Value));
Portal_Controls_AppointmentToolTip toolTip = (Portal_Controls_AppointmentToolTip)LoadControl("Portal/Controls/AppointmentToolTip.ascx");
toolTip.TargetAppointment = apt;
e.UpdatePanel.ContentTemplateContainer.Controls.Add(toolTip);
}
html
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %>
<%@ Reference Control="Portal/Controls/AppointmentToolTip.ascx" %>
<!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
>
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"/Resources/css/styles.css"
/>
<
script
language
=
"javascript"
src
=
"/Resources/js/modals.js"
type
=
"text/javascript"
></
script
>
<
script
type
=
"text/javascript"
>
//
<![CDATA[
function hideActiveToolTip() {
var tooltip = Telerik.Web.UI.RadToolTip.getCurrent();
if (tooltip) {
tooltip.hide();
}
}
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequestHandler);
function beginRequestHandler(sender, args) {
var prm = Sys.WebForms.PageRequestManager.getInstance();
if (args.get_postBackElement().id.indexOf('RadScheduler1') != -1) {
hideActiveToolTip();
}
}
function clientBeforeShow(sender, eventArgs) {
w = $telerik.$(window).width() / 2;
h = $telerik.$(window).height() / 2;
if ((sender._mouseX > w) && (sender._mouseY > h)) {
sender.set_position(Telerik.Web.UI.ToolTipPosition.TopLeft);
return;
}
if ((sender._mouseX < w) && (sender._mouseY > h)) {
sender.set_position(Telerik.Web.UI.ToolTipPosition.TopRight);
return;
}
if ((sender._mouseX > w) && (sender._mouseY < h)) {
sender.set_position(Telerik.Web.UI.ToolTipPosition.BottomLeft);
return;
}
sender.set_position(Telerik.Web.UI.ToolTipPosition.BottomRight);
}
//]]>
</
script
>
</
head
>
<
body
id
=
"body"
runat
=
"server"
style
=
"background-color:White;"
>
<
form
id
=
"form1"
runat
=
"server"
>
<
asp:ScriptManager
ID
=
"ScriptManager1"
runat
=
"server"
></
asp:ScriptManager
>
<
div
style
=
"padding:20px 20px 20px 20px;"
>
<
asp:UpdatePanel
runat
=
"server"
ID
=
"UpdatePanel1"
UpdateMode
=
"Conditional"
>
<
ContentTemplate
>
<
telerik:RadScheduler
runat
=
"server"
ID
=
"RadScheduler1"
Width
=
"750px"
Height
=
"600px"
TimeZoneOffset
=
"03:00:00"
DayStartTime
=
"08:00:00"
DayEndTime
=
"18:00:00"
DataKeyField
=
"ID"
DataSubjectField
=
"Subject"
DataStartField
=
"Start"
DataEndField
=
"End"
DisplayDeleteConfirmation
=
"false"
SelectedView
=
"MonthView"
>
<
AdvancedForm
Modal
=
"true"
/>
<
TimelineView
UserSelectable
=
"false"
/>
<
TimeSlotContextMenuSettings
EnableDefault
=
"true"
/>
<
AppointmentContextMenuSettings
EnableDefault
=
"true"
/>
</
telerik:RadScheduler
>
<
telerik:RadToolTipManager
runat
=
"server"
ID
=
"RadToolTipManager1"
Width
=
"320"
Height
=
"210"
Animation
=
"None"
HideEvent
=
"LeaveToolTip"
Text
=
"Loading..."
RelativeTo
=
"Element"
OnAjaxUpdate
=
"RadToolTipManager1_AjaxUpdate"
OnClientBeforeShow
=
"clientBeforeShow"
EnableShadow
=
"true"
/>
</
ContentTemplate
>
</
asp:UpdatePanel
>
</
div
>
</
form
>
</
body
>
</
html
>
If you could point me in the right directory that would be great. I have attached the test file I have been working on.
thanks