标签: modalpopupextender

ModalPopupExtender确定按钮单击事件未触发?

我在UpdatePanel中有一个Button.该按钮用作ModalPopupExtender的OK按钮.由于某种原因,按钮单击事件未触发.有任何想法吗?我错过了什么吗?

<asp:updatepanel id="UpdatePanel1" runat="server">
    <ContentTemplate>
        <cc1:ModalPopupExtender ID="ModalDialog" runat="server" 
            TargetControlID="OpenDialogLinkButton"
            PopupControlID="ModalDialogPanel" OkControlID="ModalOKButton"
            BackgroundCssClass="ModalBackground">
        </cc1:ModalPopupExtender>
        <asp:Panel ID="ModalDialogPanel" CssClass="ModalPopup" runat="server">
            ...
            <asp:Button ID="ModalOKButton" runat="server" Text="OK" 
                        onclick="ModalOKButton_Click" />
        </asp:Panel>
    </ContentTemplate>
</asp:updatepanel>
Run Code Online (Sandbox Code Playgroud)

asp.net updatepanel modalpopupextender asp.net-ajax

43
推荐指数
5
解决办法
11万
查看次数

使用ModalPopupExtender而不必设置TargetControlID?

我想在我的asp.net页面中使用modalpopupextender来显示子表单.但它只需要在特定条件下显示.这些条件是在一段javascript代码中确定的.

因此,最重要的是,模式弹出窗口不必在按钮单击时显示.但是,如果我将属性TargetControlID保留为空,则会出现以下异常:

'ModalPopupExtender1'的TargetControlID无效.该值不能为null或为空.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.InvalidOperationException:'ModalPopupExtender1'的TargetControlID无效.该值不能为null或为空.

我只是将TargetControlID设置为隐藏按钮,还是有更合适的选项?

asp.net modalpopupextender ajaxcontroltoolkit

21
推荐指数
2
解决办法
3万
查看次数

在IFrame之外移动ModalPopup.可能?

我的主页里面有一个iframe.iframe页面中有一个modalpopup.因此,当显示modalpopup时,modalpopup的父级是iframe主体和主页面父主体.因此,叠加层仅覆盖iframe而不是整个页面.

我尝试使用jQuery将modalpopup从iframe移动到父窗口body元素(或父窗体内的任何其他元素).我收到一个无效的参数错误.

如何从iframe中的页面显示modalpopup,它应该覆盖整个文档,父文档?

更新:

由于很少有用户对实现相同的行为感兴趣.这里是解决方法

我建议的最好的解决方法是在主页面中使用modalpopup ..然后从iframe调用它..说这样的东西..

/* function in the main(parent) page */
var _onMyModalPopupHide = null;
function pageLoad(){
    // would be called by ScriptManager when page loads
    // add the callback that will be called when the modalpopup is closed
    $find('MyModalPopupBehaviorID').add_hidden(onMyModalPopupHide);
}
// will be invoked from the iframe to show the popup
function ShowMyModalPopup(callback) {
    _onMyModalPopupHide = callback;
    $find('MyModalPopupBehaviorID').show();
}
/* this function would be called when the modal popup is closed */
function onMyModalPopupHide(){
    if (typeof(_onMyModalPopupHide) …
Run Code Online (Sandbox Code Playgroud)

asp.net iframe modalpopupextender

17
推荐指数
1
解决办法
5914
查看次数

将AJAX ModalPopupExtender定位在屏幕问题的中心

当设置PopupDragHandleControlID属性时,我在将ModalPopupExtender定位在屏幕中心时遇到问题(没有此属性,它可以正常工作).

ModalPopupExtender未位于屏幕中央.我认为导致问题的原因是页面的CSS布局导致当我禁用它时,弹出窗口位于屏幕中央(我不明白为什么页面的css仅在设置了PopupDragHandleControlID属性时影响ModalPopupExtender)

这页纸:

<!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>Untitled Page</title>
    <link href="layout.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <div id="header">
    </div>

     <div id="container">
       <div id="center" class="column">                    

          <div id="centercolcontent" class="centercolcontent">    
            <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>


        <asp:UpdatePanel ID="UpdatePanel1" runat="server" >
            <ContentTemplate>
                <asp:Button ID="btnShowPopup" runat="server" Text="Open" />   
                <asp:Panel ID="pnlUploader" runat="server" CssClass="pnlUploader"   style="display: none;">
                    <cc1:ModalPopupExtender ID="mdlPopup1" runat="server" TargetControlID="btnShowPopup"
                                PopupControlID="pnlUploader" CancelControlID="btnCancel"
                                BackgroundCssClass="modalBackground"
                                PopupDragHandleControlID="pnlUploader" RepositionMode="RepositionOnWindowResize"   />
                    <div id="pnlDragMe" class="pnlDragMe">
                        Image Uploader
                     </div>     

                     <div class="upload" id="upload">             
                         <div id="status" …
Run Code Online (Sandbox Code Playgroud)

css asp.net ajax modalpopupextender ajaxcontroltoolkit

16
推荐指数
3
解决办法
5万
查看次数

ASP.NET:ModalPopupExtender可防止触发按钮单击事件

这是我正在尝试做的事:点击我页面上的一个按钮,这反过来使(2)事情发生:

  1. 显示ModalPopup以防止用户按任何按钮或更改值
  2. 调用我的代码隐藏方法,完成后隐藏ModalPopup

这是ASP标记:

<asp:UpdatePanel ID="UpdatePanel2" runat="server" ChildrenAsTriggers="true"
    UpdateMode="Always">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="btnSaveData" EventName="Click" />
    </Triggers>
    <ContentTemplate>
        <asp:Panel ID="pnlHidden" runat="server" style="display: none;">
            <div>
            <h1>Saving...</h1>
            </div>
        </asp:Panel>
        <cc1:ModalPopupExtender ID="modalPopup"
            BackgroundCssClass="modalBackground" runat="server"
            TargetControlID="btnSaveData" PopupControlID="pnlHidden"
            BehaviorID="ShowModal">
        </cc1:ModalPopupExtender>
        <asp:Button ID="btnSaveData" runat="server" Text="Save Data"
            OnClick="btnSaveData_Click" />
    </ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

现在,这是我的C#代码背后的代码:

protected void btnSaveData_Click(object sender, EventArgs e)
{
   UpdateUserData(GetLoggedInUser());
   modalPopup.Enabled = false;
}
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?ModalPopup显示完美,但btnSaveData_Click事件永远不会触发.

更新: 第一个建议对我不起作用.我也尝试了你的第二个建议(只要它适用于我).我的一个小的区别是我的模态面板上没有按钮(pnlHidden) - 它只是一条消息.我确实尝试在客户端使用Javascript事件,这至少与我的服务器端事件并发.这是个好消息,但我似乎无法找到或获取ModalPopupExtender或其BehaviorID的句柄.这不起作用:

function showOverlay() {
    var popup = $find('modalPopup');
    popup.show();
}
Run Code Online (Sandbox Code Playgroud)

popup总是等于null.

最终更新: 这是我的最终解决方案(请特别注意使用OnClientClick和OnClick):

<asp:UpdatePanel ID="UpdatePanel2" runat="server" ChildrenAsTriggers="true"
UpdateMode="Always">
<Triggers>
    <asp:AsyncPostBackTrigger ControlID="btnSaveData" …
Run Code Online (Sandbox Code Playgroud)

c# asp.net ajax modalpopupextender

15
推荐指数
1
解决办法
6万
查看次数

popuppanel中的Pagemethods不会在IE9中第二次加载

我有一个主页面,其中有一些页面方法被调用来执行一些活动.一个popuppanel(popuppanel内容页也有pagemethods)使用该主页内所展现的一些细节.如果同一被执行多次(即,打开弹出面板多次),它工作在所有其他浏览器比其他IE9(IE8中甚至工作).然而,一次执行成功的.下面提供了正在使用的代码.

Scriptmanager使用如下:

<ajaxToolkit:ToolkitScriptManager runat="server" ID="TSCM1" EnablePageMethods="true" />

主页中的脚本:

function Clkd(){
     var ppnl=document.getElementById("if1");
     ppnl.src="Test1.aspx";
     $find('<%= MPE.ClientID %>').show();
}

function Clkd2(){
     var ppnl=document.getElementById("if1");
     ppnl.src="";
     $find('<%= MPE.ClientID %>').hide();
}

$(document).ready(function(){
     PageMethods.mainPageMethod("MainTest",cbackfn);
});

function cbackfn(str){
     alert(str);
}
Run Code Online (Sandbox Code Playgroud)

页面方法:

 [System.Web.Services.WebMethod(EnableSession = true)]
        public static string mainPageMethod(String mainStr)
        {
            return mainStr + " Ok";
        }
Run Code Online (Sandbox Code Playgroud)

Test1.aspx页面详细信息(这是弹出面板中加载的页面):

脚本代码如下:

$(document).ready(function(){
     PageMethods.Testpm("Test",fnd);
});

function fnd(str){
     alert(str);
}
Run Code Online (Sandbox Code Playgroud)

页面方法:

 [System.Web.Services.WebMethod(EnableSession = true)]
        public static string Testpm(String …
Run Code Online (Sandbox Code Playgroud)

javascript c# modalpopupextender pagemethods internet-explorer-9

13
推荐指数
1
解决办法
1252
查看次数

ModalPopupExtender和验证问题

我面临的问题是,当页面上有验证并且我试图显示模型弹出窗口时,弹出窗口不会显示.通过使用fire-bug,我注意到抛出了一个错误.

用于显示弹出窗口的按钮将原因验证设置为false,因此我不知道导致错误的原因.

我已经创建了一个示例页面来隔离我遇到的问题,我们将非常感谢任何帮助.

错误

function () {Array.remove(Page_ValidationSummaries, document.getElementById("ValidationSummary1"));}(function () {var fn = function () {AjaxControlToolkit.ModalPopupBehavior.invokeViaServer("mpeSelectClient", true);Sys.Application.remove_load(fn);};Sys.Application.add_load(fn);}) is not a function
http://localhost:1131/WebForm1.aspx
Line 136
Run Code Online (Sandbox Code Playgroud)

ASP

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="CLIck10.WebForm1" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<!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></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <div>
            <asp:Button ID="btnPush" runat="server" Text="Push" CausesValidation="false" onclick="btnPush_Click" />
            <asp:TextBox ID="txtVal" runat="server" />
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtVal" ErrorMessage="RequiredFieldValidator" />
            <asp:ValidationSummary ID="ValidationSummary1" …
Run Code Online (Sandbox Code Playgroud)

asp.net ajax modalpopupextender

12
推荐指数
2
解决办法
2万
查看次数

modalpopupextender和逗号出现在我的文本框asp.net中

一些奇怪的事情正在发生,我正在转换一个过去常常使用javascript的应用程序在一个小窗口中打开另一个网页,以便输入数据以使用ModalPopupExtender.

它似乎工作正常,但在OK事件中,当我执行txtData.Text(我的模态弹出窗口中的文本框)时,它在数据之前返回一个逗号,所以如果你输入"Rabbit",它会返回" ,兔子".

此外,当我多次使用它时,在我可能点击显示它的另一个地方,并键入"鱼",它开始回来像",兔子,鱼"之类的东西

我不知道为什么或如何阻止它这样做...任何想法?

asp.net modalpopupextender

11
推荐指数
1
解决办法
2万
查看次数

如何从服务器端关闭Modal popup Extender

如何关闭Modal Popup Extender服务器端代码点击弹出窗口内的关闭链接?

asp.net modalpopupextender

8
推荐指数
1
解决办法
3万
查看次数

在Modelpopup文本框中更改Datepicker的位置

我正在开发一个包含AJAX Modelpoup Extender和的ASP.Net webform jquery nepali-datepicker.我必须集成nepali-datepicker到我的第二个文本框中,modelpopup即下面的图像中显示蓝色背景.我面临的问题是我无法datepicker在底部定位textbox

基于帖子上的答案(如何更改jQuery DatePicker控件的弹出位置)我能够在第二个模型弹出窗口前面引入datepicker.有没有办法可以用来将datepicker实际放置到文本框中.

这是我的脚本和样式:

<script type="text/javascript">        
    function pageLoad() {
        $('.nepali-calendar').nepaliDatePicker();
    }

    $(document).ready(function () {
        $('.nepali-calendar').nepaliDatePicker();

    });
</script>    

<style type="text/css">
    div#ndp-nepali-box
    {
        position:absolute;
        z-index: 999999;
    }
</style>
Run Code Online (Sandbox Code Playgroud)

下图显示了它现在的位置.在此输入图像描述

如果我position用作relative.

<style type="text/css">
    div#ndp-nepali-box
    {
        position: relative;
        z-index: 999999;
    }
</style>
Run Code Online (Sandbox Code Playgroud)

看起来像 在此输入图像描述

有没有办法可以用来将datepicker实际放在文本框的底部.

.net c# asp.net modalpopupextender datepicker

8
推荐指数
2
解决办法
1110
查看次数