calling javascript from c#

calling javascript from c#

本文关键字:from javascript calling      更新时间:2023-09-26

我需要使用 javascript 函数在我的页面上显示和隐藏元素,但从 C# 方法中调用它。 这可能吗?

编辑:我尝试了RegisterStartupScript(见下文),但这并没有像我希望的那样隐藏元素:

HidePopup("CompanyHQSetup", "$('#<%=DivDataProvider.ClientID %>').hide();$('#<%=modalOverlay.ClientID %>').hide();");
private void HidePopup(string Key, string jscript)
    {
        string str = "";
        str += "<script language='javascript'>";
        str += jscript;
        str += "</script>";
        RegisterStartupScript(Key, jscript);
    }

编辑:通过使用隐藏字段布尔值来确定是否隐藏或显示元素来解决此问题

是的,请查看 RegisterClientScriptBlock。

以下是从该链接中获取的片段:

  public void Page_Load(Object sender, EventArgs e)
  {
    // Define the name and type of the client script on the page.
    String csName = "ButtonClickScript";
    Type csType = this.GetType();
    // Get a ClientScriptManager reference from the Page class.
    ClientScriptManager cs = Page.ClientScript;
    // Check to see if the client script is already registered.
    if (!cs.IsClientScriptBlockRegistered(csType, csName))
    {
      StringBuilder csText = new StringBuilder();
      csText.Append("<script type='"text/javascript'"> function DoClick() {");
      csText.Append("Form1.Message.value='Text from client script.'} </");
      csText.Append("script>");
      cs.RegisterClientScriptBlock(csType, csName, csText.ToString());
    }
  }

一个是服务器端,另一个是客户端。 它们可以相互传递变量(Javascript 到 ASP 是通过 forms/querystring/cookie 和 ASP 到 JS 通过 response.write 变量完成的),但它们不能直接交互。

您可以使用page。RegisterClientScript 方法可以按照以下网址进行操作http://msdn.microsoft.com/en-us/library/system.web.ui.page.registerclientscriptblock.aspx

并试一试

Javascript 是客户端,C# 是服务器端。你不能直接从 C# 调用 javascript。不过,看看Comet,它将向您展示如何将数据从HTTP服务器推送到网页。