编程语言
首页 > 编程语言> > asp.net-模态弹出式扩展程序的Sys.Application.add_load问题

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