I basically want to use the Tool / ToolTipified Grid from the Telerik, I followed pretty much the same instructions with a bit of differences in ascx. But it gave me the error:
RadToolTipManager response error:
Exception=Sys.WebForms.PageRequetManagerServerErrorException: Object reference not set to an instance of an object.
And the tooltip fires but content is not populated.
Below are my codes:
Default.aspx
Default.aspx.vb
Controls
RadToolTipManager response error:
Exception=Sys.WebForms.PageRequetManagerServerErrorException: Object reference not set to an instance of an object.
And the tooltip fires but content is not populated.
Below are my codes:
Default.aspx
| <telerik:RadAjaxPanel runat="server" ID="AjaxPanel"> |
| <telerik:RadGrid ID="RadGrid1" runat="server" AllowMultiRowSelection="true" |
| AllowSorting="True" AutoGenerateColumns="False" GridLines="Both" |
| Skin="Black" SelectedItemStyle-ForeColor="Aqua" OnSortCommand="RadGrid1_SortCommand"> |
| <MasterTableView ClientDataKeyNames="NodeName" RowIndicatorColumn-Display="false" TableLayout="Auto" AllowMultiColumnSorting="true" DataKeyNames="NodeName" > |
| <Columns> |
| <telerik:GridBoundColumn HeaderText="Terminal" DataField="NodeName" SortExpression="NodeName" ItemStyle-Wrap="false" |
| ItemStyle-HorizontalAlign="Center" UniqueName="DisplayName"> |
| <ItemStyle HorizontalAlign="Left" Wrap="False" /> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn HeaderText="IP Address" DataField="IPAddress" SortExpression="IPAddress" ItemStyle-Wrap="false" |
| ItemStyle-HorizontalAlign="Center" UniqueName="IpAddress" HeaderStyle-HorizontalAlign="Center" AllowSorting="false" > |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn HeaderText="Last Online Time" SortExpression="LastOnline" ItemStyle-Wrap="false" ItemStyle-HorizontalAlign="Center" UniqueName="LastOnlineTime" HeaderStyle-HorizontalAlign="Center" AllowSorting="false" > |
| </telerik:GridBoundColumn> |
| <telerik:GridTemplateColumn HeaderText="Product" SortExpression="ProductName"> |
| <ItemTemplate> |
| <asp:HyperLink ID="targetControl" runat="server" NavigateUrl="#"><img src="Style/Images/page2.gif" border="0" /></asp:HyperLink> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| </Columns> |
| <RowIndicatorColumn> |
| <HeaderStyle Width="20px" /> |
| </RowIndicatorColumn> |
| <ExpandCollapseColumn> |
| <HeaderStyle Width="20px" /> |
| </ExpandCollapseColumn> |
| </MasterTableView> |
| <ClientSettings EnableRowHoverStyle="true" > <Selecting AllowRowSelect="true"/> |
| <ClientEvents OnRowCreated="RadGrid1_RowCreated" OnRowDeSelected="RadGrid1_RowDeselected" OnRowSelected="RadGrid1_RowSelected" OnRowContextMenu="RowContextMenu" /> |
| </ClientSettings> |
| </telerik:RadGrid> |
| <asp:Timer ID="Timer1" runat="server" EnableViewState="False" Interval="500000" OnTick="Timer1_Tick"> |
| </asp:Timer> |
| </telerik:RadAjaxPanel> |
| <telerik:RadAjaxManager ID="RadAjaxManager2" runat="server" DefaultLoadingPanelID="RadAjaxLoadingPanel1"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="Timer1"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="AjaxPanel" /> |
| </UpdatedControls> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> |
| <telerik:AjaxUpdatedControl ControlID="RadToolTipManager1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManager> |
| <telerik:RadToolTipManager ID="RadToolTipManager1" OffsetY="-1" HideEvent="ManualClose" |
| Width="250" Height="350" runat="server" RelativeTo="Element" OnAjaxUpdate="OnAjaxUpdate" |
| Position="MiddleRight" > |
| </telerik:RadToolTipManager> |
| <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Transparency="30" CssClass="LoadingPanel" > |
| </telerik:RadAjaxLoadingPanel> |
Default.aspx.vb
| Private Sub UpdateToolTip(ByVal elementID As String, ByVal panel As UpdatePanel) |
| Dim ctrl As Control = Page.LoadControl("ctrlGridRowDetail.ascx") |
| panel.ContentTemplateContainer.Controls.Add(ctrl) |
| Dim details As ctrlGridRowDetail = DirectCast(ctrl, ctrlGridRowDetail) |
| details.rowID = elementID |
| End Sub |
| Sub OnAjaxUpdate(ByVal sender As Object, ByVal args As ToolTipUpdateEventArgs) |
| Me.UpdateToolTip(args.Value, args.UpdatePanel) |
| End Sub |
| Private Sub RadGrid1_ItemDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles RadGrid1.ItemDataBound |
| If (TypeOf (e.Item) Is GridDataItem) Then |
| Dim target As Control = e.Item.FindControl("targetControl") |
| If Not [Object].Equals(target, Nothing) Then |
| If Not [Object].Equals(Me.RadToolTipManager1, Nothing) Then |
| Me.RadToolTipManager1.TargetControls.Add(target.ClientID, (TryCast(e.Item, GridDataItem)).GetDataKeyValue("NodeName").ToString(), True) |
| End If |
| End If |
| End If |
| End Sub |
| Protected Sub RadGrid1_SortCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridSortCommandEventArgs) |
| RadToolTipManager1.TargetControls.Clear() |
| End Sub |
Controls
| <%@ Control Language="vb" AutoEventWireup="false" CodeBehind="ctrlGridRowDetail.ascx.vb" Inherits="ClientWebApp.ctrlGridRowDetail" %> |
| <asp:Label runat="server" ID="lblTitle"></asp:Label> |
| <asp:Label ID="lblAttribute" runat="server"></asp:Label> |
| Private row As String |
| Property rowID() As String |
| Get |
| Return row |
| End Get |
| Set(ByVal value As String) |
| row = value |
| End Set |
| End Property |
| Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load |
| BindNodeInfo() |
| End Sub |
| Protected Sub BindNodeInfo() |
| <<-- Populate Data here and attach result to a string builder --> |
| lblAttribute.Text = sb.ToString() |
| End Sub |