Afternoon folks.
I am using a radgrid as this has lots of functionality that I wish to keep (exporting, line selection, scrolling, etc) but I have come across a request I'm not sure how to handle and as such, I'd like some advice!
I have a radgrid attached to an object datasource implementing a SelectMethod of GetProductList and a SelectCountMethod of CountProductItems.This would return something along the lines of:

With CountProductItems returning 9.
What I need to do with this is dynamically set the radgrid so that the paging is defined by the guid i.e. one page for each guid present.
So in the above example, we'd have 3 pages.
On page load you'd be shown Page 1:

With the pager items displaying 1, 2, 3.
Click on page 2 and you'd see:

and clicking on page 3:

Does that makes sense? Is it possible and if so, any pointers greatly appreciated.
<%
@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!
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" />
<style type="text/css">
div.wrapper {
width:100%;
}
div.left_column {
width:150px;
float:left;
text-align:center;
vertical-align:middle;
}
div.right_column {
width:150px;
float:right;
text-align:center;
vertical-align:middle;
}
</style>
</
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.
</script>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
</telerik:RadAjaxManager>
<div>
<%
-- does not work --%>
<telerik:RadToolBar runat="server" ID="RadToolBar1" Width="100%">
<Items>
<telerik:RadToolBarButton>
<ItemTemplate>
<div class="wrapper">
<div class="left_column">
left Collumn
</div>
<div class="right_column">
right Collumn
</div>
</div>
</ItemTemplate>
</telerik:RadToolBarButton>
</Items>
</telerik:RadToolBar>
<br />
<%
-- works fine --%>
<div class="wrapper">
<div class="left_column">
left Collumn
</div>
<div class="right_column">
right Collumn
</div>
</div>
</div>
</form>
</
body>
</
html>
protected void RadGrid1_InsertCommand(object sender, GridCommandEventArgs e)
{
try
{
//Get the GridEditFormInsertItem of the RadGrid
GridDataInsertItem insertedItem = (GridDataInsertItem)e.Item;
RadComboBox RadComboboxUnloadType = insertedItem.FindControl("RadComboBoxUnloadType") as RadComboBox;
RadDatePicker EventStartDateTime = (RadDatePicker)insertedItem["EventStartDateTime"].Controls[0];
RadDatePicker EventEndDateTime = (RadDatePicker)insertedItem["EventEndDateTime"].Controls[0];
WellVentData WellVent = new WellVentData();
WellVent.UpdateInsertEvent(CAI,
RadComboboxUnloadType.SelectedValue.ToString(),
EventStartDateTime.SelectedDate.ToString(),
EventEndDateTime.SelectedDate.ToString(),
(insertedItem["CountofEvents"].Controls[0] as RadNumericTextBox).Text,
(insertedItem["SalesLinePressure"].Controls[0] as RadNumericTextBox).Text,
(insertedItem["ShutInPressure"].Controls[0] as RadNumericTextBox).Text,
(insertedItem["FOpHierarchy_ID"].Controls[0] as TextBox).Text);
}
catch (Exception ex)
{
RadGrid1.Controls.Add(new LiteralControl("Unable to insert Event. Reason: " + ex.Message));
e.Canceled = true;
}
}
********The following contains the aspx code******************
<
telerik:RadGrid ID="RadGrid1" GridLines="None" AutoGenerateColumns="False"
runat="server" AllowPaging="True" AllowSorting="True"
OnItemDataBound="OnItemDataBoundHandler"
AllowAutomaticUpdates="True" AllowAutomaticInserts="True"
ShowStatusBar="True" AllowFilteringByColumn="True"
CellSpacing="0" EnableAJAX="True" onneeddatasource="RadGrid1_NeedDataSource"
oninsertcommand="RadGrid1_InsertCommand"
onupdatecommand="RadGrid1_UpdateCommand"
ondeletecommand="Rad" AllowAutomaticDeletes="True" >
<MasterTableView ShowFooter="false" DataKeyNames="ResultsID" EditMode="InPlace" CommandItemDisplay="TopAndBottom">
I'm adding a custom tooltip to "Special" events on the RadCalendar. My code is below.
cell.Attributes.Add(
"id", "Calendar1_" + i.ToString());
RadToolTipManager1.TargetControls.Add(e.Cell.Attributes[
"id"], i.ToString(), true);
This works on the current month view. So I'll hover and tooltip shows.....But when I add a future Event, I'll click on the next month link and it will show..ex. 9/9/2011....but when I hover all I get is a regular tooltip.
Things I want to do:
1. I want to load all my events info as the Page/Calendar loads. I do not want to make an Ajax call.
2. Tooltip doesnt seem to work on Weekends either, even on the current month....ex. 08/20/2011.....Any ideas?
Full Code:
protected void RadCalendar1_Load(object sender, EventArgs e)
{
RadCalendarDay calendarDay1 = new RadCalendarDay();
// calendarDay1.TemplateID = "EventTemplate";
calendarDay1.Date =
new DateTime(2011, 8, 19);
calendarDay1.ItemStyle.BorderColor = System.Drawing.
Color.Green;
calendarDay1.ItemStyle.BackColor = System.Drawing.
Color.Yellow;
RadCalendar1.SpecialDays.Add(calendarDay1);
 
RadCalendarDay calendarDay2 = new RadCalendarDay();
calendarDay2.Date =
new DateTime(2011, 9, 9);
calendarDay2.ItemStyle.CssClass =
"rcEvent";
calendarDay2.ToolTip =
"This is a test2<br/>Hello2";
RadCalendar1.SpecialDays.Add(calendarDay2);
RadCalendarDay calendarDay3 = new RadCalendarDay();
calendarDay3.Date =
new DateTime(2011, 8, 30);
calendarDay3.ItemStyle.BorderColor = System.Drawing.
Color.Green;
calendarDay3.ItemStyle.BackColor = System.Drawing.
Color.Yellow;
// calendarDay3.TemplateID = "EventTemplate";
RadCalendar1.SpecialDays.Add(calendarDay3);
RadCalendarDay calendarDay4 = new RadCalendarDay();
calendarDay4.Date =
new DateTime(2011, 3, 6);
calendarDay4.ItemStyle.BorderColor = System.Drawing.
Color.Green;
calendarDay4.ItemStyle.BackColor = System.Drawing.
Color.Yellow;
// calendarDay3.TemplateID = "EventTemplate";
RadCalendar1.SpecialDays.Add(calendarDay4);
RadCalendarDay calendarDay5 = new RadCalendarDay();
calendarDay5.Date =
new DateTime(2011, 12, 11);
calendarDay5.ItemStyle.BorderColor = System.Drawing.
Color.Green;
calendarDay5.ItemStyle.BackColor = System.Drawing.
Color.Yellow;
// calendarDay3.TemplateID = "EventTemplate";
RadCalendar1.SpecialDays.Add(calendarDay5);
}
protected void OnAjaxUpdate(object sender, ToolTipUpdateEventArgs args)
{
Control ctrl = Page.LoadControl("ToolTip.ascx");
args.UpdatePanel.ContentTemplateContainer.Controls.Add(ctrl);
ToolTip details = (ToolTip)ctrl;
details.TestText = args.Value;
}
 
protected void RadCalendar1_DayRender(object sender, Telerik.Web.UI.Calendar.DayRenderEventArgs e)
{
//string test = "Hello";
if (IsDayRegisteredForTooltip((e.Day.Date)))
{
TableCell cell = e.Cell;
// cell.CssClass = "Appointment";
string localTime = DateTime.Now.ToLocalTime().ToString();
//cell.Attributes.Add("id", "Calendar1_" + localTime);
//RadToolTipManager1.TargetControls.Add(e.Cell.Attributes["id"], localTime, true);
cell.Attributes.Add(
"id", "Calendar1_" + i.ToString());
RadToolTipManager1.TargetControls.Add(e.Cell.Attributes[
"id"], i.ToString(), true);
// RadToolTip1.Controls.Add(cell);
i++;
}
}
private bool IsDayRegisteredForTooltip(DateTime date)
{
if (date.ToShortDateString().Equals("8/30/2011") || date.ToShortDateString().Equals("9/9/2011"))
// if ( date.ToShortDateString().Equals("9/10/2011"))
{
return true;
}
else
{
return false;
}
}
