为什么没有调用JavaScript函数?

时间:2016-07-29 05:40:42

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

我试图从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);
    }

和我的jsb函数在.aspx中

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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

试试这个:

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

答案 2 :(得分:1)

试试这个。看看它是否有效。您可能需要导入app.config(function (MyFactory){ console.log(MyFactory.test); }); app.factory('MyFactory', function(){ return { test: 'testing' }; });

System.Web.UI.Control

但是这段代码只会向浏览器注册JavaScript函数。由于JavaScript是客户端语言,因此将使用此代码进行注册。同样,您必须使用某些事件(如

)调用此函数
ScriptManager.RegisterStartupScript(Me.Page, GetType(Page), UniqueID, "myFunction()", True)