在我的代码背后,我有一个搜索功能,我想在它的开头和结尾处调用一些javascript。
为了做到这一点,我尝试了几种方法,但没有人工作!
这是我尝试过的:
这个:
this.Page.ClientScript.RegisterStartupScript(this.GetType(), string.Empty, "<script type='text/javascript'>document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block';</script>");
这个:
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "Wait", "document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block';", true);
尽管如此,我在.aspx上编写了一个函数:
function wait() {
document.getElementById('light').style.display = document.getElementById('light').style.display == 'block' ? 'none' : 'block';
document.getElementById('fade').style.display = document.getElementById('fade').style.display == 'block' ? 'none' : 'block';
}
并尝试将其称为:
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "Wait", "<script>wait();</script>");
而且:
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Wait", "<script>wait();</script>");
知道我做错了什么?
修改
我在此处调用此函数,if
中的函数运行,else
中的另一个函数不
if (someTest())
{
this.someControl.CssClass = "alert_Class";
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "Alert", "<script>noCriteriasEnter();</script>");
this.someControl.Focus();
return;
}
else
{
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "Wait", "<script>wait();</script>");
}
编辑2
最好的事情就是:当我在C#函数结束时调用该函数(代码隐藏)时,它会运行!!!
答案 0 :(得分:0)
您的代码没有任何问题。我之前做过这个。 问题是你在客户端代码中使用SCRIPTMANAGER。只是在后面的代码中编写scriptmanager就不会工作了。
你的HTML在任何地方都有这一行吗?
<asp:ScriptManager ID="smCharts" runat="server" />
如果没有,那么请对此进行一些研究并将其添加到您的标记