【问题标题】:Why doesn't JavaScript function get called?为什么不调用 JavaScript 函数?
【发布时间】:2016-12-03 17:21:26
【问题描述】:

我正在尝试从后面的 asp.net 代码调用我的 JS 函数,但它不起作用。

 protected void btnSavePrint_Click(object sender, EventArgs e) { 
    try
    {
        //int FormTesting;

        Page.ClientScript.RegisterStartupScript(
        GetType(),
        "MyKey",
        "myFunction();",
        true);

        TestFormNo = ClsTender.InsertAppliedWorks(NitNo, WorkNo, out formno, ContractorID, 
                     Cost.ToDecimal(), bp.LoginMainOfficeID, bp.LoginOrganizationID);
    }

还有我在 .aspx 中的 jsb 函数

<script>
        function myFunction() {
            window.print();
        }
</script>

【问题讨论】:

    标签: javascript c# asp.net c#-4.0 webforms


    【解决方案1】:

    您正在注册单击按钮时的 javascript 调用,该按钮将在下次加载时调用。而不是在事件后面的 btnSavePrint_Click 代码中注册对 myFunction() 的调用。在 Page_Load 的 btnSavePrint 中绑定事件。还要确保 myFunction 的定义存在。

    protected void Page_Load(object sender, EventArgs e)
    {
        btnSavePrint.Attributes.Add("onclick", "myFunction();");
    }
    

    【讨论】:

      【解决方案2】:

      试试这个。看看它是否有效。您可能需要导入System.Web.UI.Control

      ScriptManager.RegisterStartupScript(Me.Page, GetType(Page), UniqueID, "myFunction()", True)
      

      但此代码只会将 JavaScript 函数注册到浏览器。由于 JavaScript 是客户端语言,它将使用此代码注册。同样,您必须使用诸如

      之类的事件来调用此函数
       btnSavePrint.Attributes.Add("onclick", "myFunction();");
      

      【讨论】:

        【解决方案3】:

        试试这个:

        ScriptManager.RegisterStartupScript(this, GetType(), "YourTitle", 
                "myFunction();", true);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-02-09
          • 2019-09-10
          • 1970-01-01
          • 1970-01-01
          • 2019-09-02
          • 1970-01-01
          • 2017-05-29
          相关资源
          最近更新 更多