asp.net-模态弹出式扩展程序的Sys.Application.add_load问题
作者:互联网
我有当前的问题,让我们先解释一下上下文:
我有一个包含表单的Modal弹出式扩展程序.有一个“保存并添加新”功能,当用户单击此按钮时,表单中的数据将在回发期间保存在数据库中,并重新加载页面.
我希望此Modal弹出窗口再次出现在page_load上,允许用户输入新数据,而无需再次单击显示此Modal Popup的按钮.
我试图先这样称呼它:
ClientScript.RegisterStartupScript(Page.GetType(), "ModalPopup", "ShowModalPopup(""" & Me.formModalButton.ID & """);", True)
但是问题是当该函数被调用时,页面上尚不存在我的Modal Popup.因此,代码在
var modal = $find('myModal');
因此,我找到了另一种方式,并且效果几乎完美.
ClientScript.RegisterStartupScript(Page.GetType(), "ModalPopup", "Sys.Application.add_load(function() {ShowModalPopup(""" & Me.formModalButton.ID & """)};", True)
模态显示在页面加载中,就像我想要的那样,但是问题是,如果我单击页面上的任何其他按钮,模态弹出窗口也会再次出现.
示例:我还有另一个用于删除数据的模态弹出窗口,当我单击按钮时,两个模态都出现了,这很酷.
有谁知道如何解决这个问题或更好的方法吗?
附言我没有调用Modal弹出服务器端,因为该页面中存在javascript函数,所以我不想在RegisterStartupScript中创建此函数的副本.
谢谢你的时间.
解决方法:
使用下面的代码片段
//Declares gloabal variable
ClientScript.RegisterStartupScript(Page.GetType(),"vardeclaration","var reloadModal;",true);
ClientScript.RegisterStartupScript(Page.GetType(), "ModalPopup", "Sys.Application.add_load(
function()
{
reloadModal = function() {ShowAddModalPopup(""" & Me.imgAdd.ID & """);};
Sys.Application.add_init(reloadModal);
}
);", True)
这将允许您使用
function cancelClick()
{
Sys.application.remove_init(reloadModal);
}
标签:ajaxcontroltoolkit,ajax,asp-net-ajax,asp-net,javascript 来源: https://codeday.me/bug/20191108/2004418.html