OnAjaxUpdate Error in Tooltip RadGrid

2 posts, 0 answers
  1. Pei Chen
    Pei Chen avatar
    12 posts
    Member since:
    Jan 2010

    Posted 09 Apr 2010 Link to this post

    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
    <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 StringByVal 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 ObjectByVal args As ToolTipUpdateEventArgs)  
            Me.UpdateToolTip(args.Value, args.UpdatePanel)  
        End Sub 
     
     Private Sub RadGrid1_ItemDataBound(ByVal sender As ObjectByVal 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, NothingThen 
                    If Not [Object].Equals(Me.RadToolTipManager1, NothingThen 
     
                        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 ObjectByVal 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 ObjectByVal 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 
     
     
  2. Svetlina Anati
    Admin
    Svetlina Anati avatar
    2795 posts

    Posted 13 Apr 2010 Link to this post

    Hello Pei,

    The code snippet you have pasted seems to be correct. What I can suggest is to first remove all the ajax settings and set debug="true" in the Web.config. This will show what causes the server error and you will be able to see which exact element is null. After that you can set a breakpoint and debug the server code.

    Sincerely yours,
    Svetlina
    the Telerik team

    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
  3. UI for ASP.NET Ajax is Ready for VS 2017
Back to Top