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