or
<telerik:RadGrid ID="TimeSlotScheduleGrid" runat="server" EnableViewState="True" AutoGenerateColumns="False" Width="584" ShowFooter="false" onItemDataBound="TimeSlotScheduleGrid_RowDataBound" onItemCommand="TimeSlotScheduleGrid_RowCommand" OnColumnCreated="TimeSlotScheduleGrid_ColumnCreated"> <MasterTableView DataKeyNames="Id" GroupLoadMode="Client" Width="99%"> <GroupByExpressions> <telerik:GridGroupByExpression> <SelectFields> <telerik:GridGroupByField FieldName="GameNo" HeaderText="Game Number" HeaderValueSeparator=": " /> </SelectFields> <GroupByFields> <telerik:GridGroupByField FieldName="GameNo" SortOrder="Ascending" /> </GroupByFields> </telerik:GridGroupByExpression> </GroupByExpressions> <Columns> <telerik:GridTemplateColumn HeaderText='Time Slot'> <HeaderStyle Width="130" /> <ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" /> <ItemTemplate> <asp:Label ID="timeSlotLabel" runat="server" /> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> <ClientSettings EnableRowHoverStyle="false"> <Selecting AllowRowSelect="false" /> <Scrolling AllowScroll="True" UseStaticHeaders="True" SaveScrollPosition="True" FrozenColumnsCount="1"/> </ClientSettings> </telerik:RadGrid>for (int wk = 1; wk < (maxWeeks + 1); wk++) { GridTemplateColumn templateColumn = new GridTemplateColumn(); string columnName = "W" + wk.ToString(); templateColumn.HeaderText = columnName; templateColumn.HeaderStyle.Width = new Unit(40); templateColumn.UniqueName = columnName; templateColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Center; templateColumn.ItemStyle.VerticalAlign = VerticalAlign.Top; if(divisionObj.IsManualTimeSlotEntry) templateColumn.ItemTemplate = new TimeSlotCheckBoxTemplate(columnName); else templateColumn.ItemTemplate = new TimeSlotTemplate(columnName); TimeSlotScheduleGrid.MasterTableView.Columns.Add(templateColumn); } private class TimeSlotTemplate : ITemplate { private string templateName; //controls private Label label; private LinkButton linkButton; private Image image; public TimeSlotTemplate(string name) { templateName = name; } public void InstantiateIn(System.Web.UI.Control container) { label = new Label(); label.ID = templateName + "Label"; linkButton = new LinkButton(); linkButton.ID = templateName + "Button"; image = new Image(); image.ID = templateName + "Image"; linkButton.Controls.Add(image); container.Controls.Add(label); container.Controls.Add(linkButton); } }protected void OnAjaxUpdate(object sender, ToolTipUpdateEventArgs args) { this.UpdateToolTip(args.Value, args.UpdatePanel); } private void UpdateToolTip(string elementID, UpdatePanel panel) { Control ctrl = Page.LoadControl("ImageDesc.ascx"); panel.ContentTemplateContainer.Controls.Add(ctrl); ImageDesc img = (ImageDesc)ctrl; img.IDNum = elementID; } protected void RadRotator1_ItemDataBound(object sender, Telerik.Web.UI.RadRotatorEventArgs e) { Control target = e.Item.FindControl("RadBinaryImage1"); HiddenField id = (HiddenField)e.Item.FindControl("HiddenField2"); HiddenField id2 = (HiddenField)e.Item.FindControl("HiddenField1"); if (!Object.Equals(target, null)) { if (!Object.Equals(this.RadToolTipManager1, null)) { //Add the button (target) id to the tooltip manager this.RadToolTipManager1.TargetControls.Add(target.ClientID, id2.Value+id.Value, true); } } }<div class="pics"> <telerik:RadRotator ID="RadRotator1" Enabled="false" runat="server" ItemWidth="207" Height="122" ItemHeight="122" DataSourceID="SqlDataSource1" Skin="Office2007" OnItemDataBound="RadRotator1_ItemDataBound" Width="620px" BorderColor="#FF3300" FrameDuration="7000"> <ItemTemplate> <telerik:RadBinaryImage ID="RadBinaryImage1" DataValue='<%# Eval("Image") %>' runat="server" /> <asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("ImageID") %>' /> <asp:HiddenField ID="HiddenField2" runat="server" Value='<%# Eval("ImageDesc") %>' /> </ItemTemplate> </telerik:RadRotator> <telerik:RadToolTipManager ID="RadToolTipManager1" OffsetY="-1" HideEvent="Default" runat="server" OnAjaxUpdate="OnAjaxUpdate" RelativeTo="Element" Skin="Office2007" Position="BottomCenter"> </telerik:RadToolTipManager> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:RootConnection %>" SelectCommand="Select Top 15 Image,ImageID,ImageDesc + 'ID:'+convert(varchar(10),ImageID) as 'ImageDesc' From CMS_Header_Images Where Archive='No' and SiteID=@SiteID ORDER BY NEWID()"> <SelectParameters> <asp:ControlParameter ControlID="RotatorSiteID" Name="SiteID" PropertyName="Value" /> </SelectParameters> </asp:SqlDataSource> <asp:HiddenField ID="RotatorSiteID" runat="server" /> </div>
Page load (old issue fixed by ivan link the ajaxmanager to ajaxify) RadAjaxManager ajaxManager = RadAjaxManager.GetCurrent(this.Page);if (ajaxManager != null){ ajaxManager.AjaxSettings.Clear(); ajaxManager.AjaxSettings.AddAjaxSetting(PlanGrid, PlanGrid);}protected
void PlanGrid_NeedDataSource(object source,
Telerik.Web.UI.GridNeedDataSourceEventArgs e) { this.PlanGrid.DataSource = PlanningData;
//is a Dataset } protected void
PlanGrid_ItemPreRender(object sender, EventArgs e) { ((sender as
GridDataItem)["CheckBoxTemplateColumn"].FindControl("CheckBox1") as
CheckBox).Checked = (sender as GridDataItem).Selected; } protected void ToggleRowSelection(object
sender, EventArgs e) { ((sender as CheckBox).Parent.Parent as
GridItem).Selected = (sender as CheckBox).Checked; } protected void ToggleSelectedState(object
sender, EventArgs e) { if ((sender as CheckBox).Checked == true) { foreach (GridDataItem
dataItem in PlanGrid.MasterTableView.Items) { (dataItem.FindControl("CheckBox1")
as CheckBox).Checked = true; dataItem.Selected = true;
} } else { foreach (GridDataItem dataItem in PlanGrid.MasterTableView.Items) { (dataItem.FindControl("CheckBox1")
as CheckBox).Checked = false; dataItem.Selected =
false; } } } protected void PlanGrid_UpdateCommand(object source,
Telerik.Web.UI.GridCommandEventArgs e) { PlanGrid.MasterTableView.EditMode =
GridEditMode.EditForms; GridEditableItem eeditedItem = e.Item as
GridEditableItem; GridEditManager editMan =
editedItem.EditManager; foreach (GridColumn column in
e.Item.OwnerTableView.RenderColumns) { if (column is
IGridEditableColumn) { IGridEditableColumn
editableCol = (column as IGridEditableColumn); if
(editableCol.IsEditable) { IGridColumnEditor editor
= editMan.GetColumnEditor(editableCol); string editoreditorType =
editor.ToString(); string editorText =
"unknown"; object editorValue = null; if (editor is
GridTextColumnEditor) { editorText =
(editor as GridTextColumnEditor).Text; editorValue =
(editor as GridTextColumnEditor).Text; } if (editor is
GridBoolColumnEditor) { editorText =
(editor as GridBoolColumnEditor).Value.ToString(); editorValue =
(editor as GridBoolColumnEditor).Value; } if (editor is
GridDropDownColumnEditor) { editorText =
(editor as GridDropDownColumnEditor).SelectedText + "; " + (editor as GridDropDownColumnEditor).SelectedValue; editorValue =
(editor as GridDropDownColumnEditor).SelectedValue; } try { DataRow[]
changedRows = PlanningData.Tables[0].Select("Week= " +
editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["Week"]); changedRows[0][column.UniqueName]
= editorValue; PlanningData.Tables[0].AcceptChanges(); } catch (Exception ex) { PlanGrid.Controls.Add(new
LiteralControl("<strong>Error
'" + column.UniqueName + "'</strong> - " + ex.Message)); e.Canceled = true;
break; } } } } editedItem.Edit = false; }