This is a migrated thread and some comments may be shown as answers.

[Solved] RadMenu open and placement after postback?

1 Answer 108 Views
Menu
This is a migrated thread and some comments may be shown as answers.
Daniel
Top achievements
Rank 1
Daniel asked on 11 Jun 2009, 01:12 AM
On my page I have a TextBox and a submit button. They are both inside an UpdatePanel. This section is for a search. The user will type in their request and click the submit button. If there are too many results, I would like the menu to appear next to the TextBox (right or left of it) with a selection of items they can choose from to narrow their search.

Any ideas how I can implement this? I have been trying for a few hours to wrap my head around it, but I can't seem to get it.

Daniel

1 Answer, 1 is accepted

Sort by
0
Daniel
Top achievements
Rank 1
answered on 12 Jun 2009, 02:38 PM
I figured this out!! Here is a quick sample of what I was trying to do:

ASPX Page:
%@ Page Language="VB" AutoEventWireup="false" CodeFile="RelativeMenuPlacement.aspx.vb" 
    Inherits="TestFiles_RelativeMenuPlacement" %> 
 
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">  
<head runat="server">  
    <title></title>  
 
    <script type="text/javascript">  
        function showMenu() {  
            var contextMenu = $find("<%#rdConMenu.ClientID %>");  
 
            var xy = findPos(document.getElementById('<%#Me.TextBox1.ClientID %>'));  
 
            contextMenu.showAt(xy[0], xy[1]);  
 
        }  
 
 
        function findPos(obj) {  
            var curleft = curtop = 0;  
            if (obj.offsetParent) {  
                do {  
                    curleft += obj.offsetLeft;  
                    curtop += obj.offsetTop;  
 
                } while (objobj = obj.offsetParent);  
 
 
                return [curleft, curtop];  
            }  
        }  
         
         
    </script> 
 
</head> 
<body> 
    <form id="form1" runat="server">  
    <asp:ScriptManager ID="ScriptManager1" runat="server">  
    </asp:ScriptManager> 
    <div> 
        <asp:UpdatePanel ID="upTest" runat="server">  
            <ContentTemplate> 
                <div style="float: left; padding-top: 100px; border: 2px solid;" id="testArea">  
                    <asp:TextBox ID="TextBox1" runat="server" Width="463px"></asp:TextBox> 
                </div> 
            </ContentTemplate> 
            <Triggers> 
                <asp:AsyncPostBackTrigger ControlID="Button1" /> 
            </Triggers> 
        </asp:UpdatePanel> 
    </div> 
    <asp:Button ID="Button1" runat="server" Text="Button" Width="157px" Style="clear: both;" /> 
    <telerik:RadContextMenu runat="server" ID="rdConMenu">  
        <Items> 
            <telerik:RadMenuItem Text="Test 1">  
            </telerik:RadMenuItem> 
            <telerik:RadMenuItem Text="Test 2">  
            </telerik:RadMenuItem> 
            <telerik:RadMenuItem Text="Test 3">  
            </telerik:RadMenuItem> 
            <telerik:RadMenuItem Text="Test 4">  
            </telerik:RadMenuItem> 
        </Items> 
    </telerik:RadContextMenu> 
    </form> 
</body> 
</html> 


Code Behind:
Imports Telerik.Web.UI  
Partial Class TestFiles_RelativeMenuPlacement  
    Inherits System.Web.UI.Page  
 
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click  
        ScriptManager.RegisterClientScriptBlock(Me.Page, Me.Page.GetType, "showStuff", "showMenu(event);", True)  
    End Sub  
 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load  
        Me.Page.Header.DataBind()  
        Me.form1.DataBind()  
    End Sub  
End Class 


Enjoy!

Daniel
Tags
Menu
Asked by
Daniel
Top achievements
Rank 1
Answers by
Daniel
Top achievements
Rank 1
Share this question
or