Search code examples
jqueryasp.netajaxfloating

ASP.NET Floating Div Menu via Ajax or jQuery


Problem: I have a master page dictating the css, html, head, body content so I can't use the floating div technique and need to go trough the ajax/asp only route. All I have been able to find online on this subject is people having problems with implementing this but no actual working example code.

I tried using the jQuery based floating div menu off jtricks.com but the instructions were for an html file not a asp.net file and caused an error with the page load.

 <script type="text/javascript" src="specify script file URL here">  
 </script>  

 <div id="floatdiv" style="  
 position:absolute;  
 width:200px;height:50px;top:10px;right:10px;  
 padding:16px;background:#FFFFFF;  
 border:2px solid #2266AA;  
 z-index:100">  
 This is a floating javascript menu.  
 </div>  

    <script type="text/javascript">  
    floatingMenu.add('floatdiv',  
    {  
        // Represents distance from left or right browser window  
        // border depending upon property used. Only one should be  
        // specified.  
        // targetLeft: 0,  
        targetRight: 10,  

        // Represents distance from top or bottom browser window  
        // border depending upon property used. Only one should be  
        // specified.  
        targetTop: 10,  
        // targetBottom: 0,  

        // Uncomment one of those if you need centering on  
        // X- or Y- axis.  
        // centerX: true,  
        // centerY: true,  

        // Remove this one if you don't want snap effect  
        snap: true  
    });  
   </script>  

Please provide some sample code on using floating divs in TabContainer or DragPanel via Ajax.

Thanks! :)


Solution

  • To make the jquery based floating div menu work, I put the code for the div within the ASP Content Main Section after the DynamicDataManager Control and in the ASP UpdatePanel:

     <asp:Content ID="main" ContentPlaceHolderID="main" Runat="Server">
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
           <ContentTemplate>
                <EditItemTemplate>
    
                    <div id="floatdiv" style="position:absolute; width:200px; height:50px; top:10px; right:10px; padding:16px;background:#FFFFFF; border:2px solid #080808; z-index:100">
                    <asp:LinkButton ID="LinkButton1" runat="server" CommandName="Update" Text="Update" style="right:25px; padding:25px" updateDisabled = "updateDisabled +1; if (updateDisabled == 1) {return true;} else {this.disabled=true;return false;};" />
                    <asp:LinkButton ID="LinkButton2" runat="server" CommandName="Cancel" Text="Cancel" CausesValidation="false" />
                    </div>
    

    I also added a disable update button to prevent people creating 2 duplicate records in the DB:

    <asp:DynamicEntity runat="server" Mode="Edit" OnInit="DynamicEntity_Init"/>
    
    <script language="javascript" type="text/javascript"> var updateDisabled = 0; </script>
    <asp:LinkButton runat="server" CommandName="Update" Text="Update" OnClientClick="updateDisabled = updateDisabled +1; if (updateDisabled == 1) {return true;} else {this.disabled=true;return false;};" />
    <asp:LinkButton runat="server" CommandName="Cancel" Text="Cancel" CausesValidation="false" />
    

    I put the actual script within the ASP Content Main tag but after the Update Panel:

     <script type="text/javascript">        
        floatingMenu.add('floatdiv',
        {
            // Represents distance from left or right browser window   
            targetRight: 10,
    
            // Represents distance from top or bottom browser window  
            targetTop: 10,
    
            snap: true
        });  
     </script>