У меня есть 2 страницы с именами, как: Abc.aspx и popupAbc.aspxфункция Javascript не получает вызов из кода позади, когда он помещается на главной странице
Сейчас на Abc.aspx у меня есть кнопки ниже по щелчку которого я открытие popupAbc.aspx в качестве всплывающего:
<asp:Button ID="btnOpenChildAbcPopup" runat="server" Text="Open" UseSubmitBehavior="false" CausesValidation="False" OnClick="btnOpenChildAbcPopup_Click" />
Код Behind:
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);
}
Но в поджигатель консоли это бросает ошибку что ExitMyCurrentFancyBox не определен.
Когда я поставил эту функцию ExitMyCurrentFancyBox в моем popupAbc.aspx
то он успешно звонить, но когда я положил это на моей главной странице, то он не звонит.
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);
, потому что это не публичный метод. Вы можете создать какой-то общедоступный метод, который выполняет ваш javascript-код, и вызовет этот метод со своей дочерней страницы вместо этого. – Khazratbek
Спасибо за ответ, но можете ли вы показать, как это сделать. Скажите, пожалуйста, какое-то решение. –