0

我在父窗体上有一个模态弹出扩展器(从子 aspx 调用位于 iFrame 中)。我可以通过调用来展示它

parent.ShowModal();

这是父页面上执行 $find('ModalPopupExtender1').show(); 的 javascript 函数

它工作得很好。但是现在我发现了一个新问题。

在子页面上执行完 VB 代码隐藏后,我真的很想隐藏该模式表单。不要误会我的意思,我对模态弹出窗口没有任何意见。事实上,我更喜欢他们。只是我的用户希望在 VB 代码隐藏(子页面)完成执行后继续工作。我试过

ParentForm.ModalPopupExtender1.Hide()
Top.ModalPopupExtender1.Hide

但我没有任何运气。

任何帮助将不胜感激。

谢谢,

杰森

4

1 回答 1

0

好的,这是我找到的解决方案(以防其他人需要它)。

不要试图直接从 VB 中引用父级的控件。相反,在父 aspx 中创建一个 java 函数(像这样):

function HideModal()
    {$find('ModalPopupExtender1').hide();}

然后,在子 aspx 页面中创建一个 java 函数,如下所示:

function HideModal()
    {parent.HideModal();}

最后,在子 aspx 的 VB 代码隐藏中创建以下内容

        strScript = "<script language=" & Chr(34) & "javascript" & Chr(34) & " id=" & Chr(34) & "MyClientScript" & Chr(34) & ">HideModal();</script>"
        ClientScript.RegisterStartupScript(Me.GetType(), "HideModal", strScript)

工作得很好!

于 2011-06-21T16:02:47.737 回答