在代码隐藏中隐藏 ASPxPopupControl

本文关键字:隐藏 ASPxPopupControl 代码 | 更新日期: 2023-09-27 18:19:51

我添加了一个ASPxPopupControl,其中包括一个保存按钮,我想在保存记录后关闭它。

我尝试了以下方法:

 string str = @"<script language=""javascript"" type=""text/javascript"">function HideEscalateAsk() {pcEscalteAsk.Hide();}</script>";
                   Page.RegisterClientScriptBlock("ClientScript", str);

但它仍然不起作用。如何关闭 ASPxPopupControl?

在代码隐藏中隐藏 ASPxPopupControl

第一件事。你如何处理保存按钮; Server Side事件或Client Side

如果您使用的是客户端Callback则使用服务器端事件来保存数据,并使用End Callback客户端事件来关闭弹出窗口。

如果使用服务器端事件,请使用ASPxPopupControl.ShowOnPageLoad属性。

protected void btnShowPopup_Click(object sender, EventArgs e) {
            txtPopup.Text = txtMain.Text;
            ASPxPopupControl1.ShowOnPageLoad = true;
        }
        protected void btnOK_Click(object sender, EventArgs e) {
            // TODO: your code is here to process the popup window's data at the server
            txtMain.Text = txtPopup.Text;
            ASPxPopupControl1.ShowOnPageLoad = false;
        }

有关信息,请参阅以下链接:
如何显示 ASPxPopupControl
如何通过服务器端代码显示和隐藏弹出窗口

我认为这是DevSupport提到的最好的方法。您必须编写如下所示的 java 脚本:

//This function will close the pop window
function ClosePopWindow() {
     var paentWin = window.parent;
     window.parent.PopWindow.Hide();
}

//This function will clear inside content of pop window
function ClearPopWindow() {
        var paentWin = window.parent;
        paentWin.PopWindow.SetContentHtml(null);            
   }

然后在需要时从代码隐藏中调用它(在您想要执行的所有进程之后(,如下所示:

Page.ClientScript.RegisterStartupScript(GetType(), "script", "ClosePopWindow();", true);

或者如果你想清除内容,你可以使用第二个功能。请注意,PopWindow ClientInstanceName ASPxPopupControl。此方法适用于任何情况,例如,当母版页和内容 URL 中定义的弹出窗口是没有母版页的窗口时,因为它尝试在浏览器中的最终 html 元素中获取父窗口。

您可以在以下位置阅读开发人员支持答案:https://www.devexpress.com/Support/Center/Question/Details/B199294

在 ASP.NET 论坛上,郭特里对此的回答是:http://forums.asp.net/t/1990775.aspx?How+to+close+the+popup+from+the+popup+containing+page+

希望这有帮助。