Asp.net 从对话框内容获取对对话框的引用
以下是我的设想:Asp.net 从对话框内容获取对对话框的引用,asp.net,jquery,Asp.net,Jquery,以下是我的设想: 我在a页有一个div 当事件发生时(无论我定义什么、单击什么),我都会执行一个div.对话框,设置它的属性并打开它 其中的数据是从async.ajax调用返回的,该调用从url获取数据,并通过调用.ajax回调中的div.html(data)将其附加到div,因此它本质上是通过获取数据(内容)并将其附加到调用对话框的div(“open”)来加载PageB……我不认为这里有什么特别之处 我的问题:在B页中,我如何引用该对话框以便对其执行一些操作?例如,在从.ajax调用返回并通过
现在,我的按钮在对话框中不起作用,因为其中一个按钮关闭对话框,另一个按钮应该重定向到新页面,但这两个按钮现在都不起作用,因为我没有引用它所在的对话框来操作它。因此,我需要引用,以便可以通过驻留在PageB(数据)中的某个jQuery关闭对话框。这应该在success ajax回调的A页中完成,因为A页引用了需要关闭的
div
A页:
$('div.Dialog').load('/pageB', function(data) {
$('#closeButtonOnPageB').click(function() {
// ... close dialog
});
});
如果页面B由AJAX加载(与
相反),那么其中的任何Javascript都将在与页面A其余部分相同的上下文中运行
因此,您可以使用在A页中使用的相同代码来引用B页中的对话框。请注意,如果在其他地方也使用了页面B,则首先需要检查您是否在页面A内实际运行。(检查对话框是否存在,或是否在A页中设置了某些变量)
编辑 如果它位于
中,则可以使用parent
属性与父帧交互
具体来说,您可以使用parent.$
在父框架的上下文中运行jQuery代码 例如:
parent.$('#someId').dialog(...);
由于这使用父页面中的$
函数,因此页面B不需要引用jQuery或jQuery UI。选择器将在父页面中匹配
您可以(但不应该)通过编写
parent.$('selector',document)
load与此有什么关系?在从.ajax调用中获取数据后,我使用jQuery.html设置div的内部html…然后打开对话框。您提到了jQuery中的ajax,加载是一种方法,但可能您正在使用类似于$.ajax
,$.get
,$.post
的其他方法。。。但在所有情况下,您都有一个成功回调,您可以在其中注册关闭事件。但我不想在回调时关闭。只有当用户单击“我的对话”内容中的按钮时,页面B的内容才会包装在IFrame中。因此,当我从任何url获取数据时,我将其作为数据的一部分包装在一个IFrame中,这就是div的外观,然后我最后调用我的div.dialog(“open”)。@coffeeaddict:然后您可以使用parent
属性与父页面交互。(例如,parent.$(“…”).dialog(…)
)注意,我还没有测试过。你应该问一个单独的问题。我有,我发誓它昨晚起作用了,然后我开始工作,wtf,它不再起作用了。谁知道…令人沮丧。