我们有一个asp.net页面,其中包含多个用户控件,其中许多控件的visible
属性设置为false
。
通过选择单选按钮,可以通过在代码隐藏中将visible
属性设置为true
来显示其中一个用户控件。发生这种情况时,我们希望运行JavaScript函数。该脚本已使用页面的ScriptManager.RegisterStartUpScript
方法中的Page_Load
进行了注册。
我们怎样才能做到这一点?
我们尝试过的事情:
ScriptManager
$(document).ready()
但在所有情况下,脚本仅在加载/重新加载页面时执行。
唯一可行的 hack 是调用pageLoad()
函数内的函数,因为在每次PostBack后调用此函数。
答案 0 :(得分:0)
我建议你在updatePanel中包含用户控件,并在updatePanel load事件中添加你的ScriptManager.RegisterStartUpScript:
<asp:UpdatePanel runat="server" ID="UpdatePanel1"
OnLoad="UpdatePanel1_Load">
C#
protected void UpdatePanel1_Load(object sender, EventArgs e)
{
//your code to fire the javascript
}
答案 1 :(得分:0)
您可以尝试服务器端:ClientScriptManager.RegisterClientScriptBlock()
与客户端:setTimeout()
例如:
protected void Page_Load(object sender, EventArgs e)
{
Page page = (Page)HttpContext.Current.CurrentHandler;
string script = "<script type=\"text/javascript\">setTimeout(function(){alert("Hello World")},3000);</script>";
if (page != null && !page.ClientScript.IsClientScriptBlockRegistered("alert"))
{
page.ClientScript.RegisterClientScriptBlock(typeof(PageFunctions), "alert", script);
}
}
这将在page_load上注册一个脚本块,3秒后将显示警告,详细了解setTimeout @ Window setTimeout() Method