Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 从内部回发不开火_Asp.net_Webforms_Magnific Popup - Fatal编程技术网

Asp.net 从内部回发不开火

Asp.net 从内部回发不开火,asp.net,webforms,magnific-popup,Asp.net,Webforms,Magnific Popup,我有一些ASP代码,我正试图通过放大弹出窗口来显示/隐藏它们,将页面中的一个div作为源代码传递给它 <a href="#import-popup" ToolTip="Import New Proposal" class="open-popup-link">Insert New Record</a> <div id="import-popup" class="white-popup mfp-hide"> <span>Proposal to

我有一些ASP代码,我正试图通过放大弹出窗口来显示/隐藏它们,将页面中的一个div作为源代码传递给它

<a href="#import-popup" ToolTip="Import New Proposal" class="open-popup-link">Insert New Record</a>
<div id="import-popup" class="white-popup mfp-hide">
    <span>Proposal to Import:</span>
    <asp:TextBox ID="txtPropNum" runat="server" />
    <asp:Button ID="btnImport" runat="server" Text="Import" OnClick="btnImport_Click" />
</div>
div的显示和隐藏非常精细。不过,我似乎无法让
asp:Button id=“btnImport”
实际启动它的功能(现在是一个
MsgBox
来显示
asp:TextBox
)的内容。事实上,我甚至没有看到在我的web控制台中记录post/get请求


但是,当按钮不在该div内时,它可以正常工作,
TextBox
甚至可以从代码隐藏中访问,因此我知道我的实际单击功能正在工作。你知道会发生什么吗?放大是否以某种方式阻止了回发?

我能找到的唯一解决方案(因为我在API中没有看到任何选项)是修改核心代码(糟糕!)

我改了台词:

// add everything to DOM
mfp.bgOverlay.add(mfp.wrap).prependTo( document.body );
致:


其中form1是我的表单元素的ID。

我将弹出窗口的内容移动到它自己的页面,然后通过
iframe
类型调用放大,如下所示:

JS:

$(文档).ready(函数(){
$('.open popup link')。放大弹出窗口({
键入:“iframe”,
iframe:{
标记:“”+
'' +
''+
'' +
''+
''
},
midClick:true//允许在鼠标中键单击时打开弹出窗口。如果在href中未提供替代源,请始终将其设置为true。
});
})
父页面:

<a href="/Proposals/ImportProposal.aspx" ToolTip="Insert New Record from ACT" class="open-popup-link">Insert New Record</a>


那么我的子页面本质上就是我在问题中发布的

如果您使用的是最新版本的
.magnificPopup
,那么您可以使用新的
prependTo
方法,并在设置时发送.net表单ID

   $('.popup-with-form').magnificPopup({
                type: 'inline',
                preloader: false,
                focus: '#name',
                prependTo: $('#form1'),
将prependTo添加到:$(“#form1”)
为我工作!使用VS 2010

如果弹出窗口将控件移动到ASP.NET表单之外,则按钮将不会回发(因为它们在表单之外;细节稍微复杂一些)。告诉Popup将弹出控件移动到何处(必须位于唯一的ASP.NET表单中),或灵活地使用不同的弹出窗口。在弹出窗口运行后使用DOM检查器查看控件移动的位置。很好。它确实把他们带到了形式之外。谢谢你快速的回复和准确的信息。我也有同样的问题。。。你知道如何解决这个问题了吗?我最后做的是构建一个新页面来容纳我的弹出内容,然后通过iframe类型调用它。我会把我的代码写在回复中。谢谢!好球!这比修改核心代码要好得多。也就是说,子页面中的任何事件或回发都会被子页面而不是父页面捕获。这一点很好。在我的使用过程中,我确实需要在父页面上触发事件,所以这不会起作用。我会在有机会的时候检查这一点。似乎正是我想要的:)提供完整的代码示例更容易让每个人理解,只需使用显示“复制问题代码”的按钮回答问题,然后进行编辑。
$(document).ready(function () {     
    $('.open-popup-link').magnificPopup({
        type: 'iframe',
        iframe: {
            markup: '<div class="mfp-iframe-scaler" style="width:100px; height:100px;">'+
                    '<div class="mfp-close"></div>' +
                    '<div class="custom-mfp-border">'+
                    '<iframe class="mfp-iframe" frameborder="0" allowfullscreen></iframe>' +
                    '</div>'+
                    '</div>'
            },
        midClick: true // Allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source in href.

    });

})
<a href="/Proposals/ImportProposal.aspx" ToolTip="Insert New Record from ACT" class="open-popup-link">Insert New Record</a>
   $('.popup-with-form').magnificPopup({
                type: 'inline',
                preloader: false,
                focus: '#name',
                prependTo: $('#form1'),