HoverMenu link buttons causing full page postback

Last post 11-07-2009 6:47 PM by razielx28. 4 replies.

Sort Posts:

  • HoverMenu link buttons causing full page postback

    10-15-2009, 11:37 AM
    • Member
      1 point Member
    • MattBell
    • Member since 01-04-2007, 9:19 PM
    • Posts 8

    I have a hover menu with a simple 2 link button panel attached.  All of this lives within my update panel, but forwhatever reason the link buttons cause a full page postback instead of a partial page postback.  How do I get them to play nice with the update panel? 

  • Re: HoverMenu link buttons causing full page postback

    10-19-2009, 5:38 AM
    Answer

    Please don't put HoverMenu into an updatepanel . HoverMenu is an ajax control, I suggest you keep it outside updatepanel.


    Vince Xu
    Microsoft Online Community Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
  • Re: HoverMenu link buttons causing full page postback

    10-19-2009, 12:16 PM
    Answer
    • Member
      14 point Member
    • ponny123
    • Member since 10-19-2009, 4:05 PM
    • Posts 2

    Hello,

    I'm also having the same problem. I've tried Vince's suggestion by taking the button out of UpdatePanel but it does not solve the problem.

    I have included an example code that demonstrates this problem to see if anyone has any idea. Thanks ahead!


    ----

    In this code I have a hover menu inside a UpdatePanel. There is a button (ButtonOnHoverMenu) on the hover menu. I also have another button (ButtonNotOnHoverMenu) that is not on the hover menu but is inside the same UpdatePanel. When you click on ButtonNotOnHoverMenu there is no full-page refresh, however, when you click on ButtonOnHoverMenu the whole page refreshes, and you can see the content of the label on the top of the page gets updated.



    <%@ Page Language="C#" %>
    
    <%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
        
        protected void Page_Load(object sender, EventArgs e)
        {
            pageLoadCount.Text = (int.Parse(pageLoadCount.Text) + 1).ToString();
        }
        
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>    
        <style type="text/css">
            .InitiallyHidden { display: none }
        </style>   
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <div>Page_Load count: <asp:Label runat="server" ID="pageLoadCount" Text="0"></asp:Label></div>
            
            <asp:ScriptManager runat="server" ID="sm"></asp:ScriptManager>
            
            <asp:UpdatePanel runat="server" ID="uPanel" UpdateMode="Conditional">
            <ContentTemplate>
            
                <asp:TextBox runat="server" ID="dummy" Text="Hover over to see menu" 
                    Height="60px" Width="177px"></asp:TextBox>            
                
                <cc1:HoverMenuExtender ID="dummy_HoverMenuExtender" runat="server" 
                    TargetControlID="dummy" PopupControlID="hoverMenu">
                </cc1:HoverMenuExtender>
                    
                <asp:Panel runat="server" ID="hoverMenu" CssClass="InitiallyHidden">        
                    <asp:Button runat="server" ID="ButtonOnHoverMenu" Text="I'm on a hover manu" />        
                </asp:Panel>
            
                <br />
                
                <asp:Button runat="server" ID="ButtonNotOnHoverMenu" Text="I'm not on a hover menu" />
            
            </ContentTemplate>
            </asp:UpdatePanel>
            
        </div>
        </form>
    </body>
    </html>
    



  • Re: HoverMenu link buttons causing full page postback

    10-19-2009, 12:18 PM
    • Member
      14 point Member
    • ponny123
    • Member since 10-19-2009, 4:05 PM
    • Posts 2

    I found the solution myself. An update-panel must be placed within the hover-menu's popup-target. See working code below:

    <%@ Page Language="C#" %>
    
    <%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
        
        protected void Page_Load(object sender, EventArgs e)
        {
            pageLoadCount.Text = (int.Parse(pageLoadCount.Text) + 1).ToString();
        }
    
        protected void ButtonOnHoverMenu_Click(object sender, EventArgs e)
        {
            buttonOnHoverClickCount.Text = (int.Parse(buttonOnHoverClickCount.Text) + 1).ToString();
            uPanel1.Update();
        }
    
        protected void ButtonNotOnHoverMenu_Click(object sender, EventArgs e)
        {
            buttonNotOnHoverClickCount.Text = (int.Parse(buttonNotOnHoverClickCount.Text) + 1).ToString();
            uPanel1.Update();
        }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title></title>    
        <style type="text/css">
            .InitiallyHidden { display: none }
        </style>   
    </head>
    <body>
        <form id="form1" runat="server">
        <div>        
            <div>Page_Load count: <asp:Label runat="server" ID="pageLoadCount" Text="0"></asp:Label></div>
            
            <asp:ScriptManager runat="server" ID="sm"></asp:ScriptManager>
            
            <asp:UpdatePanel runat="server" ID="uPanel1" UpdateMode="Conditional">
            <ContentTemplate>
    
                <div>ButtonOnHoverMenu_Click count: <asp:Label runat="server" ID="buttonOnHoverClickCount" Text="0"></asp:Label></div>            
                        
                <asp:TextBox runat="server" ID="dummy" Text="Hover over to see menu" 
                    Height="60px" Width="177px"></asp:TextBox>                        
                
                <cc1:HoverMenuExtender ID="dummy_HoverMenuExtender" runat="server" 
                    TargetControlID="dummy" PopupControlID="hoverMenu" >
                </cc1:HoverMenuExtender>
                                        
                <asp:Panel runat="server" ID="hoverMenu" CssClass="InitiallyHidden">        
                    
                    <asp:UpdatePanel runat="server" ID="uPanel2" UpdateMode="Conditional">
                    <ContentTemplate>
            
                        <asp:Button runat="server" ID="buttonOnHoverMenu" Text="I'm on a hover manu"
                            OnClick="ButtonOnHoverMenu_Click" />        
                    
                    </ContentTemplate>
                    </asp:UpdatePanel>
                </asp:Panel>
                
                <br />
                
                <div>ButtonNotOnHoverMenu_Click count: <asp:Label runat="server" ID="buttonNotOnHoverClickCount" Text="0"></asp:Label></div>
                            
                <asp:Button runat="server" ID="ButtonNotOnHoverMenu" 
                    Text="I'm not on a hover menu" onclick="ButtonNotOnHoverMenu_Click" />
            
            </ContentTemplate>
            </asp:UpdatePanel>
            
        </div>
        </form>
    </body>
    </html>
    




  • Re: HoverMenu link buttons causing full page postback

    11-07-2009, 6:47 PM
    • Member
      4 point Member
    • razielx28
    • Member since 11-01-2009, 6:13 PM
    • Posts 2


Page 1 of 1 (5 items)