ASP.NET Floating Div Menu via Ajax or jQuery

2019-09-04 17:33发布

问题:

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! :)

回答1:

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>