Dynamically Created RadContextMenu not rendering Items

2 posts, 0 answers
  1. Fergal
    Fergal avatar
    23 posts
    Member since:
    Jun 2012

    Posted 31 Oct 2012 Link to this post


    I'm attempting to dynamically create a RadContextMenu inside an asp.net server control. Whilst the Context Menu appears to be created/rendered correctly, I am unable to get any menu items to actually create. Checking the rendered markup - it appears that these items never actually make it onto the page.

    Below is a sample of my code, can anyone indicate what I am doing wrong?

    Imports System.Web.UI.WebControls
    Imports Telerik.Web.UI
    <ParseChildren(True, "MenuItems")>
    Public Class SplitButton
        Inherits WebControl
        Private _MenuItems As New List(Of MenuItem)
        Private _Button As RadButton
        Private _ContextMenu As RadContextMenu
        Public Property MenuItems() As List(Of MenuItem)
                Return _MenuItems
            End Get
            Set(ByVal value As List(Of MenuItem))
                _MenuItems = value
            End Set
        End Property
        Public Property Text As String
        Public Property IconUrl As String
        Private Sub BuildContextMenu()
            _ContextMenu = New RadContextMenu() With {.ID = String.Format("{0}_Menu", Me.ID)}
            Dim x As New List(Of RadMenuItem)
            For Each item As MenuItem In MenuItems
                Dim menuItem As New RadMenuItem() With {.Text = item.Text, .Value = item.Value, .Visible = item.Visible, .ImageUrl = item.IconUrl, .PostBack = item.PostBack}
        End Sub
        Private Sub BuildButton()
            _Button = New RadButton() With {.ID = String.Format("{0}_Button", Me.ID)}
            _Button.OnClientClicked = "SplitButton_OnClientClicked"
            _Button.Attributes.Add("data-contextmenu", _ContextMenu.ClientID)
            _Button.Text = Text
            _Button.Icon.PrimaryIconUrl = IconUrl
            _Button.EnableSplitButton = True
        End Sub
        Private Sub SplitButton_Init(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Init
        End Sub
        Private Sub SplitButton_PreRender(ByVal Sender As Object, ByVal e As EventArgs) Handles Me.PreRender
        End Sub
    End Class
    Public Class MenuItem
        Public Property IconUrl As String
        Public Property Text As String
        Public Property Value As String
        Public Property PostBack As Boolean
        Public Property Visible As Boolean
    End Class

    <%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="Grid_SplitButtonDemo.WebForm1" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <%@ Register Assembly="GridSplitButtonDemo" Namespace="Grid_SplitButtonDemo" TagPrefix="a" %>
    <head runat="server">
        <title>SplitButton Demo</title>
        <script type="text/javascript">
            function SplitButton_OnClientClicked(sender, args)
                //Check if we clicked the splitbutton portion, or the button portion
                if (args.IsSplitButtonClick())
                    //Show the context menu below the selected button.
                    var currentLocation = $telerik.getLocation(sender.get_element());
                    var contextMenu = $find(sender.get_element().getAttribute('data-contextmenu'));
                    contextMenu.showAt(currentLocation.x, currentLocation.y + 22);
                    //Prevent postback.
                    //Button portion clicked, Perform the default action.
                    alert("Perform Default Action");
        <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
            SplitButton Demo
            <a:SplitButton runat="server" ID="btnActions" Text="Edit" IconUrl="Images/pencil.png">
                <a:MenuItem IconUrl="Images/Remove.png" Text="Delete" Value="Delete" PostBack="false" />
                <a:MenuItem IconUrl="Images/wand.png" Text="Add Another" Value="NewAnother" />

  2. Kate
    Kate avatar
    1898 posts

    Posted 05 Nov 2012 Link to this post

    Hello Fergal,

    Attached to this post you can find a very simplified runnable project where I implemented a simple textbox with a context menu in a user control.

    the Telerik team
    If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
Back to Top