我添加了一个ASPxPopupControl,其中包含一个Save按钮,我想在保存记录后关闭它。
我尝试了以下内容:
string str = @"<script language=""javascript"" type=""text/javascript"">function HideEscalateAsk() {pcEscalteAsk.Hide();}</script>";
Page.RegisterClientScriptBlock("ClientScript", str);
但它仍然无效。如何关闭ASPxPopupControl?
答案 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
ClientInstanceName
为ASPxPopupControl
。这种方法适用于任何情况,例如,在主页面和内容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+
希望得到这个帮助。