AjaxControlToolKit ModalPopupExtender将快照拖回中心

时间:2014-02-22 14:12:13

标签: ajaxcontroltoolkit asp.net-4.0 drag modalpopupextender

我正在使用AjaxControlToolKit 4.0(ASP.NET 4.0)的ModalPopupExtender,每一件事都运行正常,当我拖动ModalPopup时它正在拖动,但问题是它正在回弹到其原始位置(中心)。 相同的代码正在努力: http://www.asp.net/AjaxLibrary/AjaxControlToolkitSampleSite/ModalPopup/ModalPopup.aspx

我已经搜索过这个问题,但是所有的解决方案都是使用外部Java脚本代码给出的,但是在使用ASP.NET示例页面的相同代码时,遵循代码可能会出错。 (从我复制相同代码的地方)

这是我的代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="AjaxToolKitTest4.WebForm3" %>

<!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>Hello</title>
    <link href="style.css" rel="stylesheet" />
</head>
<body>
    <form id="form1" runat="server">
        <ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></ajaxToolkit:ToolkitScriptManager>

        <div>
            <%--Start LinkButton to Show Modal Popup Form--%>
            <asp:LinkButton ID="lnkAddForm" Text="Insert" runat="server" OnClick="lnkAddForm_Click"></asp:LinkButton>
            <%--End LinkButton to Show Modal Popup Form--%>

            <%--Start Panel for Modal Popup Form--%>
            <asp:Panel ID="programmaticPopup"  runat="server" CssClass="modalPopup" Style="display: none; width: 350px; padding: 10px;">                
                <asp:Panel runat="Server" ID="programmaticPopupDragHandle" Style="cursor: move; width:100%; background-color: #DDDDDD; border: solid 1px Gray; color: Black; text-align: center;">
                    Title Bar
                </asp:Panel>
                    Content of Modal Form
            </asp:Panel>
            <%--End Panel for Modal Popup Form--%>

            <%-- Start AjaxToolKit ModalPopupExtender for Panel  --%>
            <asp:Button runat="server" ID="hiddenTargetControlForModalPopup" Style="display: none" />
            <ajaxToolkit:ModalPopupExtender 
                ID="programmaticModalPopup"                 
                BehaviorID="programmaticModalPopupBehavior"
                TargetControlID="hiddenTargetControlForModalPopup" 
                PopupControlID="programmaticPopup"
                BackgroundCssClass="modalBackground" 
                DropShadow="false" 
                PopupDragHandleControlID="programmaticPopupDragHandle"
                RepositionMode="RepositionOnWindowScroll"
                runat="server">
            </ajaxToolkit:ModalPopupExtender>
            <%-- End AjaxToolKit ModalPopupExtender for Panel  --%>
        </div>

    </form>
</body>
</html>

2 个答案:

答案 0 :(得分:5)

模态弹出窗口使用表单的body进行拖动。如果未正确设置主体的高度,则拖动将无法正常工作。

设置以下CSS样式,拖动应该有效。

html, body
{
    margin: 0;
    padding: 0;
    height: 100%;
}

答案 1 :(得分:0)

在大多数情况下,设置PopupDragHandleControlID和Drag =“ true”应该足以拖拉并放置弹出窗口。如果弹出窗口跳回,也可能是浏览器。在我的情况下,相同的代码在Edge和Chrome中可以正常工作,可以在弹出窗口中移动弹出窗口并将其放置在预期的位置,但是在Internet Explorer中,弹出窗口在拖动时会移动,但在弹出窗口时会回到原始位置。

HTH!