从C#中的代码运行javascript函数

时间:2013-07-29 13:25:49

标签: c# javascript

在我的代码背后,我有一个搜索功能,我想在它的开头和结尾处调用一些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#函数结束时调用该函数(代码隐藏)时,它会运行!!!

1 个答案:

答案 0 :(得分:0)

您的代码没有任何问题。我之前做过这个。 问题是你在客户端代码中使用SCRIPTMANAGER。只是在后面的代码中编写scriptmanager就不会工作了。

你的HTML在任何地方都有这一行吗?

<asp:ScriptManager ID="smCharts" runat="server" />

如果没有,那么请对此进行一些研究并将其添加到您的标记