从Cs执行Javascript命令

时间:2011-02-19 21:09:42

标签: c# javascript jquery asp.net

有没有办法可以从.cs中调用(fadeIn或fadeOut)函数?

这就是我的情况 - 我有一个数据主义者的东西。当用户点击列表中的某些内容时,它会向他提供有关他点击的内容的详细信息,如果他需要,则会再次点击它。

现在,在第一次点击时,我将按钮的OnClientClick更改为fadeOut数据列表。 所以在第二次点击时(在他确认该项目之后)它就会淡出。

问题是 - 如果他点击一件事而不是点击另一件事,就会发生fadeOut。

4 个答案:

答案 0 :(得分:1)

假设您有一个名为 foo 的javascript函数,并且您想在按钮单击事件上执行它。您可以使用以下代码:

protected void btnFoo_Click(object sender, EventArgs e)
{
    if(!ClientScript.IsStartupScriptRegistered("foo"))
        ClientScript.RegisterStartupScript(GetType(), "foo", "foo();", true);
}

答案 1 :(得分:0)

没有。您的C#代码仅在服务器上执行。

您需要另一种方式来告诉您的javascript运行。也许有关你想要完成什么的细节会有所帮助吗?

答案 2 :(得分:0)

没有。您的.cs文件将在服务器上运行,其中javascript在浏览器中的客户端计算机上运行。这意味着代码在不同的时间执行。您可以做的最好的事情是在将呈现的html返回到客户端的浏览器后,使用ClientScript.RegisterClientScriptBlock在页面上运行javascript。

我怀疑您可能想要在服务器上处理将调用fadeIn和fadeOut函数的事件。审核the asp.net page lifecycle以更好地理解为什么不可能这样做可能会有所帮助。

答案 3 :(得分:0)

  

有没有办法可以从.cs中调用(fadeIn或fadeOut)函数?

取决于。

如果您正在谈论使用ASP.Net生成响应的标准网页,那么不,服务器端C#执行创建请求,并且在请求完成时完成工作。

如果你想看一种称为长轮询的技术,那么你可以模拟这种类型的体系结构,实际上C#代码与Ajax一起控制一些客户端代码,例如以Comet为例:
Comet described at Wikipedia

最终,网络套接字将提供此类能力(除非更多的安全性挫折):
Web sockets described at Wikipedia

最后,如果您正在谈论涉及WebBrowser组件的Windows Phone 7开发,您可以调用javascript,如本文所示:
Invoking javascript in WebBrowser component