Javascript 函数在放在母版页上时不会从代码隐藏处获取调用
本文关键字:代码 隐藏处 获取 调用 函数 母版页 Javascript | 更新日期: 2023-09-27 18:32:34
我有2个页面名为:abc.aspx和popupAbc.aspx
现在在 ABC 上.aspx我在单击时有以下按钮,我正在打开弹出窗口 Abc.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。
当我把这个 ExitMyCurrentFancyBox 函数放在我的popupAbc.aspx
中时,它调用成功,但当我把它放在我的母版页上时,它没有调用。
function ExitMyCurrentFancyBox() {
alert()
}
注意:My 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);
根据您的要求发布可能的解决方案。
将下一个方法添加到母版页:
public void ShowMyJavascript(){
Response.Write("<script language='javascript'>alert('Here is my message to be displayed as an alert');</script>");
}
在您的内容页面中:
this.Master.ShowMyJavascript();