Asp.net Can';t位置模态弹出窗口

Asp.net Can';t位置模态弹出窗口,asp.net,ajaxcontroltoolkit,modalpopupextender,Asp.net,Ajaxcontroltoolkit,Modalpopupextender,我试图打开一个模式弹出窗口,以响应单击图像。模式弹出窗口将显示图像的放大版本。无论我如何改变它的位置,它都会一直在屏幕中央显示弹出窗口。我试着把更新面板放在一个div中,没有改变。对于图像,我有一个javascript onclick事件: onclick = "fnZoomImage(this.src)" js功能包括: function fnZoomImage(imageUrl) { var imgZoom = document.getElementById("imgZoom");

我试图打开一个模式弹出窗口,以响应单击图像。模式弹出窗口将显示图像的放大版本。无论我如何改变它的位置,它都会一直在屏幕中央显示弹出窗口。我试着把更新面板放在一个div中,没有改变。对于图像,我有一个javascript onclick事件:

onclick = "fnZoomImage(this.src)"
js功能包括:

function fnZoomImage(imageUrl) {
    var imgZoom = document.getElementById("imgZoom");
    imgZoom.src = imageUrl.replace("WebVersion/", "");
    imgZoom.style.display = "block";
    var modalpopup = $find('mpeZoom'); 
    modalpopup.show();
    return false;
}

function HideImage() {
    var imgZoom = document.getElementById("imgZoom");
    imgZoom.style.display = "none";
    var modalpopup = $find('mpeZoom'); 
    modalpopup.hide();
}
弹出式扩展器是:

<div style="position:fixed;top:100;left:200;">
<asp:UpdatePanel runat="server" ID="upnlZoom" RenderMode="Inline">
    <ContentTemplate>
        <asp:Panel runat="server" ID="pnlZoom" style="position:fixed;top:100;left:200;border:solid 2px navy;display:none;">
            <img id="imgZoom" style="display: none;" />
            <input type="button" id="btnClose" value="Close" onclick="HideImage()" style="width:75px;" />
        </asp:Panel>
        <ajaxToolkit:ModalPopupExtender ID="mpeZoom" BehaviorID="mpeZoom" runat="server" TargetControlID="btnFake" BackgroundCssClass="backgrondModal" DropShadow="true" PopupControlID="pnlZoom" PopupDragHandleControlID="pnlZoom" />
        <asp:Button runat="server" ID="btnFake" Style="display:none" /> 
    </ContentTemplate>
</asp:UpdatePanel>
</div>


我正在尝试将弹出窗口定位在左侧:200px,顶部:100px。

通过下面的
Set_X
Set_Y
属性设置弹出窗口的左侧和顶部位置,并删除为面板
pnlZoom
和更新面板上方的div设置的样式(位置,左侧和顶部)

modalpopup.set_X(200);
modalpopup.set_Y(100);
modalpopup.show();
更新1:根据您的评论,如果您想显示相对于触发单击的控件位置的模式弹出窗口,请执行以下操作。可以使用方法获取控件的偏移量

将onclick更改为pass
以引用img/button对象

 onclick = "fnZoomImage(this, this.src)"
您的
fnZoomImage
函数将变为

function fnZoomImage(obj, imageUrl) {
     .....
     .....
     var location = Sys.UI.DomElement.getLocation(obj);
     var xPos = location.x;
     var yPos = location.y;

     xPos = xPos - 200; // adjust the value accordingly
     yPos = yPos + obj.offsetHeight; 

     modalpopup.set_X(xPos);
     modalpopup.set_Y(yPos);
     modalpopup.show();
     .....
     .....
}

你不想要位置:绝对的,而不是固定的,谢谢你,丹尼斯。成功了。我猜这是关于屏幕而不是网页(网页不占用整个屏幕大小)。如果是这样的话,是否可以设置坐标wrt网页坐标?很高兴它能工作。。您甚至可以显示相对于所单击按钮位置的弹出窗口(弹出窗口将显示在按钮单击旁边,但并不总是位于固定的中心位置)。如果您需要此代码,请告诉我。我想你也应该能得到页面的坐标。谢谢你,丹尼斯。谢谢你的帮助。我想有代码显示旁边的弹出式点击位置。谢谢。@NoBullMan用替代方法的代码编辑了我的答案。