从后面的代码隐藏ASPxPopupControl

时间:2012-01-07 12:14:57

标签: c# asp.net devexpress

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

我尝试了以下内容:

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

但它仍然无效。如何关闭ASPxPopupControl?

2 个答案:

答案 0 :(得分:5)

第一件事。你是如何处理保存按钮的; 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;
        }

请参阅以下链接以获取信息:
How to show the ASPxPopupControl
How to show and hide a popup window via server side code

答案 1 :(得分:0)

我认为这是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 ClientInstanceNameASPxPopupControl。这种方法适用于任何情况,例如,在主页面和内容URL中定义的弹出窗口是没有母版页的窗口,因为它试图在浏览器中的最终html元素中获取父窗口。

您可以在此处阅读Dev Support答案:https://www.devexpress.com/Support/Center/Question/Details/B199294

从ASP.NET论坛上,Terry Guo回答: http://forums.asp.net/t/1990775.aspx?How+to+close+the+popup+from+the+popup+containing+page+

希望得到这个帮助。