I have an user control with a Grid and TooltipManager inside UpdatePanel. I add TargetControls on ItemDataBound of RadGrid and handle AjaxUpdate of the TooltipManager. TooltipManager works fine but before any Ajax Request to the Grid. Once I click "Refresh" command item (that fires RebindGrid) or on another external client-side AjaxRequest() call, I don't get the tooltip.
Here is the code
Thank you,
Mahesh
Here is the code
| <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional"> |
| <ContentTemplate> |
| <radG:RadGrid ID="WorkItemsGrid" runat="server" AllowSorting="True" |
| AutoGenerateColumns="False" DataSourceID="WorkItemsObjectDataSource" EnableAJAX="True" EnableAJAXLoadingTemplate="True" LoadingTemplateTransparency="50" |
| GridLines="None" AllowMultiRowSelection="True" Width="100%" OnItemCommand="WorkItemsGrid_ItemCommand" OnItemDataBound="WorkItemsGrid_ItemDataBound"> |
| <ClientSettings> |
| <Selecting AllowRowSelect="True" /> |
| <Scrolling AllowScroll="True" UseStaticHeaders="True" ScrollHeight="200px" /> |
| <ClientEvents OnGridCreated="GridCreated" /> |
| </ClientSettings> |
| <MasterTableView DataSourceID="WorkItemsObjectDataSource" CommandItemDisplay="Top" DataKeyNames="RequestID" |
| NoMasterRecordsText="No Work Items available."> |
| <SortExpressions> |
| <radG:GridSortExpression FieldName="SubmittedOn" SortOrder="ascending" /> |
| </SortExpressions> |
| <CommandItemStyle HorizontalAlign="Right" /> |
| <CommandItemTemplate> |
| <asp:LinkButton ID="WorkItemsRefreshButton" runat="server" CommandName="RebindGrid"><img style="border:0px" alt="" src="~/Images/Refresh.gif" runat="server" /> Refresh </asp:LinkButton> |
| <asp:LinkButton ID="ReleaseRequestButton" runat="server" CommandName="ReleaseRequest"><img style="border:0px" alt="" src="~/Images/cancel.gif" runat="server" />Release</asp:LinkButton> |
| </CommandItemTemplate> |
| <Columns> |
| <radG:GridButtonColumn DataTextField="RequestID" HeaderText="ReqID" UniqueName="RequestID" CommandName="ProcessRequest" ButtonType="LinkButton"> |
| <ItemStyle Width="5%" /> |
| <HeaderStyle Width="5%" /> |
| </radG:GridButtonColumn> |
| <radG:GridButtonColumn DataTextField="ClientName" HeaderText="Client Name" UniqueName="ClientName" CommandName="ProcessRequest" ButtonType="LinkButton" > |
| <ItemStyle Width="10%" /> |
| <HeaderStyle Width="10%" /> |
| </radG:GridButtonColumn> |
| <radG:GridBoundColumn AllowFiltering="False" DataField="ReqAttorney" Groupable="False" |
| HeaderText="Req Attorney" UniqueName="ReqAttorney"> |
| <ItemStyle Width="10%" /> |
| <HeaderStyle Width="10%" /> |
| </radG:GridBoundColumn> |
| <radG:GridBoundColumn DataField="Requestor" HeaderText="Requestor" ReadOnly="True" |
| UniqueName="Requestor"> |
| <ItemStyle Width="10%" /> |
| <HeaderStyle Width="10%" /> |
| </radG:GridBoundColumn> |
| <radG:GridBoundColumn DataField="ReqOffice" HeaderText="Office" ReadOnly="True" UniqueName="ReqOffice"> |
| <ItemStyle Width="5%" /> |
| <HeaderStyle Width="5%" /> |
| </radG:GridBoundColumn> |
| <radG:GridBoundColumn DataField="ReqType" HeaderText="Request Type" UniqueName="ReqType"> |
| <ItemStyle Width="15%" /> |
| <HeaderStyle Width="15%" /> |
| </radG:GridBoundColumn> |
| <radG:GridBoundColumn DataField="ReqStatus" HeaderText="Status" UniqueName="ReqStatus"> |
| <ItemStyle Width="14%" /> |
| <HeaderStyle Width="14%" /> |
| </radG:GridBoundColumn> |
| <radG:GridBoundColumn DataField="SubmittedOn" HeaderText="Submitted" ReadOnly="True" |
| UniqueName="SubmittedOn" DataFormatString="{0:g}"> |
| <ItemStyle Width="14%" /> |
| <HeaderStyle Width="14%" /> |
| </radG:GridBoundColumn> |
| <radG:GridBoundColumn DataField="ClaimedOn" HeaderText="Claimed On" UniqueName="ClaimedOn" DataFormatString="{0:g}"> |
| <ItemStyle Width="14%" /> |
| <HeaderStyle Width="14%" /> |
| </radG:GridBoundColumn> |
| <radG:GridBoundColumn DataField="ClaimedBy" HeaderText="Claimed By" UniqueName="ClaimedBy" Visible="false"> |
| <ItemStyle Width="10%" /> |
| <HeaderStyle Width="10%" /> |
| </radG:GridBoundColumn> |
| <radG:GridClientSelectColumn UniqueName="SelectRequest" > |
| <ItemStyle Width="3%" /> |
| <HeaderStyle Width="3%" /> |
| </radG:GridClientSelectColumn> |
| </Columns> |
| <ExpandCollapseColumn Visible="False"> |
| <HeaderStyle Width="19px" /> |
| </ExpandCollapseColumn> |
| <RowIndicatorColumn Visible="False"> |
| <HeaderStyle Width="20px" /> |
| </RowIndicatorColumn> |
| </MasterTableView> |
| </radG:RadGrid> |
| <telerik:RadToolTipManager ID="AlertToolTipManager" runat="server" OnAjaxUpdate="AlertToolTipManager_OnAjaxUpdate" RelativeTo="Element" Height="100%" Skin="WebBlue" Animation="None" Position="MiddleRight" MouseTrailing="false" OffsetY="-20"> |
| </telerik:RadToolTipManager> |
| </ContentTemplate> |
| </asp:UpdatePanel> |
| protected void AlertToolTipManager_OnAjaxUpdate(object sender, ToolTipUpdateEventArgs args) |
| { |
| int index = args.TargetControlID.LastIndexOf("_"); |
| string reqID = args.TargetControlID.Substring(index + 1); |
| Control ctrl = Page.LoadControl("~/Parts/AlertToolTip.ascx"); |
| args.UpdatePanel.ContentTemplateContainer.Controls.Add(ctrl); |
| AlertToolTip alert = (AlertToolTip)ctrl; |
| alert.ReqID = int.Parse(reqID); |
| } |
| protected void WorkItemsGrid_ItemDataBound(object sender, GridItemEventArgs e) |
| { |
| if (e.Item.ItemType == GridItemType.AlternatingItem || e.Item.ItemType == GridItemType.Item) |
| { |
| DataRowView requestRowView = e.Item.DataItem as DataRowView; |
| if (requestRowView != null) |
| { |
| int reqID = (int)requestRowView["RequestID"]; |
| GridDataItem gridItem = e.Item as GridDataItem; |
| string controlID = "WorkReqAlert_" + reqID.ToString(); |
| gridItem["ReqStatus"].Text += GetHTMLCodeForAlert(controlID,reqID); |
| ToolTipTargetControl target = new ToolTipTargetControl(controlID, true); |
| AlertToolTipManager.TargetControls.Add(target); |
| } |
| } |
| } |
| private string GetHTMLCodeForAlert(string controlID,int reqID) |
| { |
| string dataFormatString = "<img id='" + controlID + "' src='../Images/Email_Read.gif'>"; |
| return dataFormatString; |
| } |
Thank you,
Mahesh