我有两个页面命名为: Abc.aspx和popupAbc.aspx
现在在 Abc.aspx 我点击下面的按钮,我正在弹出 popupAbc.aspx :
<asp:Button ID="btnOpenChildAbcPopup" runat="server" Text="Open" UseSubmitBehavior="false" CausesValidation="False" OnClick="btnOpenChildAbcPopup_Click" />
代码背后:
protected void btnOpenChildAbcPopup_Click(object sender, EventArgs e)
{
string url="../popupAbc.aspx";
ScriptManager.RegisterStartupScript(Page, GetType(), "alert", "OpenChildAbcPopup('" + url + "');",
true);
}
function OpenChildAbcPopup(url) {
$.fancybox({
'onStart ': function () { $.fancybox.hideActivit() },
'onComplete': function () { $.fancybox.hideActivity() },
'titleShow': 'true',
'titlePosition': 'over',
'titleFormat': 'formatTitle',
'href': url,//popupAbc.aspx
'type': 'iframe',
'width': '1000',
'height': '500',
'fitToView': false,
'autoSize': false,
'hideOnOverlayClick': false,
'hideOnContentClick': false,
'overlayOpacity': 0.7,
'enableEscapeButton': false,
'closeEffect': 'none'
});
$.fancybox.hideLoading();
return false;
}
到目前为止,每件事都能完美运行,点击按钮,我的popupAbc.aspx
会在弹出框中完美打开,但问题出现在popupAbc.aspx
。
我在popupAbc.aspx
中有一个按钮,我将保存一些数据,保存数据后我想再次调用
javascript函数在主页上,但是javascript函数没有调用。
这是我的页面: popupAbc.aspx
<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/MyMaster.Master" CodeBehind="popupAbc.aspx.cs" Inherits="popupAbc.aspx" %>
<asp:Button ID="btnSubmit" runat="server" Text="Save" OnClick="btnSubmit_Click" UseSubmitBehavior="true" ValidationGroup="p1" />
protected void btnSubmit_Click(object sender, EventArgs e)
{
//code for saving form data in database and after that call javascript function which
//is on MyMaster page
ScriptManager.RegisterStartupScript(Page, GetType(), "Js", "ExitMyCurrentFancyBox();", true);
}
但是在firebug控制台中,抛出错误 ExitMyCurrentFancyBox未定义。
当我在我的popupAbc.aspx
中放置 ExitMyCurrentFancyBox 函数时,它正在成功调用,但是当我把它放在我的母版页上时,它就没有调用。
function ExitMyCurrentFancyBox() {
alert()
}
注意:我的Abc.aspx 使用update panel
而 popupAbc.aspx 并不使用update panel
。
当我把它放在母版页上以及如何在母版页上调用时,有人能告诉我为什么Javascript函数没有调用吗?
我已经尝试了所有这些,但下面的任何一个都不起作用:
// ScriptManager.RegisterStartupScript(Page, GetType(), "alert", "ExitMyCurrentFancyBox();", true);
// ScriptManager.RegisterStartupScript(Page, GetType(), "alert", "ExitMyCurrentFancyBox();", true);
//ClientScript.RegisterClientScriptBlock(GetType(), "sas", "CloseFancyboxtl();", true);
// ScriptManager.RegisterStartupScript(this, this.GetType(), "ntmtch", "ExitMyCurrentFancyBox();", true);
// ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg", "ExitMyCurrentFancyBox();", true);
//ScriptManager.RegisterStartupScript(this, this.GetType(), "msg", "ExitMyCurrentFancyBox;", true);
ScriptManager.RegisterClientScriptBlock(this.Page, GetType(), Guid.NewGuid().ToString(), "ExitMyCurrentFancyBox();", true);
答案 0 :(得分:1)
根据您的要求发布可能的解决方案。
将下一个方法添加到您的MasterPage:
public void ShowMyJavascript(){
Response.Write("<script language='javascript'>alert('Here is my message to be displayed as an alert');</script>");
}
在您的内容页面中:
this.Master.ShowMyJavascript();