Button Click In Tooltip User Control

3 posts, 1 answers
  1. Michael
    Michael avatar
    13 posts
    Member since:
    Sep 2014

    Posted 14 Oct 2015 Link to this post

    I am trying to do something similar to the RadToolTip for RadCalendar demo shown here: http://demos.telerik.com/aspnet-ajax/tooltip/examples/tooltipcalendar/defaultvb.aspx.  I want to add an export button inside the UserControl for the tooltip, but can't seem to get that event to fire.  My code for the user control is below.  Any ideas?

     

    Partial Class CalendarEventDetails
        Inherits System.Web.UI.UserControl
     
        Private dtSelectedDate As DateTime
        Public Property SelectedDate() As DateTime
            Get
                Return dtSelectedDate
            End Get
            Set(ByVal value As DateTime)
                dtSelectedDate = value
            End Set
        End Property
     
        Protected Sub Page_Init(sender As Object, e As EventArgs) Handles Me.Init
            AddHandler lvEvents.ItemCommand, AddressOf lvEvents_ItemCommand
        End Sub
     
        Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
            odsEvents.SelectParameters("StartDate").DefaultValue = SelectedDate
            odsEvents.SelectParameters("EndDate").DefaultValue = SelectedDate
            lvEvents.DataBind()
        End Sub
     
        Protected Sub lvEvents_ItemCommand(sender As Object, e As ListViewCommandEventArgs)
            If e.CommandName = "Export" Then
                'Do Something
            End If
        End Sub
    End Class

     

    <%@ Control Language="VB" AutoEventWireup="true" CodeFile="EventDetails.ascx.vb" Inherits="CalendarEventDetails" %>
    <asp:ListView runat="server" ID="lvEvents" DataSourceID="odsEvents">
        <LayoutTemplate>
            <div style="max-height: 250px; overflow-y: auto">
                <asp:PlaceHolder runat="server" ID="itemPlaceHolder"></asp:PlaceHolder>
            </div>
        </LayoutTemplate>
        <ItemTemplate>
            <asp:Label runat="server" ID="lblStartDate" Text='<%#Eval("StartDate")%>' Visible="false"></asp:Label>
            <asp:Label runat="server" ID="lblEndDate" Text='<%#Eval("EndDate")%>' Visible="false"></asp:Label>
            <div style="margin-bottom: 5px">
                <b>Category</b><br />
                <%#Eval("Category")%>
            </div>
            <div style="margin-bottom: 5px">
                <b>Title</b><br />
                <asp:Label runat="server" ID="lblTitle" Text='<%#Eval("Title")%>'></asp:Label>
            </div>
            <div style="margin-bottom: 5px">
                <b>Time</b><br />
                <%#Eval("StartDate", "{0:hh:mm tt}")%> to <%#Eval("EndDate", "{0:hh:mm tt}")%>
            </div>
            <div style="margin-bottom: 5px">
                <b>Location</b><br />
                <asp:Label runat="server" ID="lblLocation" Text='<%#Eval("Location")%>'></asp:Label>
            </div>
            <div style="margin-bottom: 5px">
                <b>Description</b><br />
                <asp:Label runat="server" ID="lblDescription" Text='<%#Eval("Description")%>'></asp:Label>
            </div>
            <div>
                <des:LinkButton runat="server" ID="btnExport" Text="Export" CommandName="Export"></des:LinkButton>
            </div>
        </ItemTemplate>
        <ItemSeparatorTemplate>
            <hr />
        </ItemSeparatorTemplate>
    </asp:ListView>
    <asp:ObjectDataSource ID="odsEvents" runat="server" DataObjectTypeName="CalendarEvent"
        TypeName="CalendarManager" SelectMethod="GetEventList">
        <SelectParameters>
            <asp:Parameter Name="CalendarId" Type="Int32" DefaultValue="101" />
            <asp:Parameter Name="StartDate" Type="DateTime" />
            <asp:Parameter Name="EndDate" Type="DateTime" />
            <asp:Parameter Name="CategoryId" Type="Int32" />
        </SelectParameters>
    </asp:ObjectDataSource>

  2. Answer
    Marin Bratanov
    Admin
    Marin Bratanov avatar
    3595 posts

    Posted 15 Oct 2015 Link to this post

    Hi Michael,

    I am attaching a small sample I built on top of your code that seems to work fine for me so you can compare it with your setup to try and find the difference that causes the issue. Here are some suggestions, notes and ideas:

    • see if using standard controls works fine (as my sample uses asp:LinkButton)
    • see if binding the listview in the PreRender event helps (read more about this in the Common Issues article of RadToolTip)
    • ensure there are no server errors during the processing of the request (e.g, when the data source attempts to retrieve data)
    • see whether the event is actually hit (e.g.m by adding a breakpoint) but the problem is with the operation that is executed. Here are several potential problems:
      • an error is thrown so the expected result is never achieved. To confirm this you should step through the code
      • you are attempting to change the Response object (e.g., by sending a file to the user) which is impossible in this scenario - the tooltip manager loads its content via AJAX, so the entire user control is already in an UpdatePanel and MS AJAX does not allow you to change the response.
        If this is what you need, I would advise that you consider using a RadWindow for these details, much like in the Edit Dialog for RadGrid demo. Having an entire page for the details instead of an AJAX-enabled user control will let you export and send files.

    Regards,

    Marin Bratanov
    Telerik
    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 Feedback Portal and vote to affect the priority of the items
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Michael
    Michael avatar
    13 posts
    Member since:
    Sep 2014

    Posted 15 Oct 2015 in reply to Marin Bratanov Link to this post

    Wow, yeah, it was the LinkButton causing the problem.  Switched to an asp:LinkButton and everything works fine.  Thanks!
Back to Top