如何在asp.net中从c#运行javascript

How to run javascript from c# in asp.net

本文关键字:运行 javascript 中从 net asp      更新时间:2023-09-26

我是Asp新手。我有我的aspx页面像这样

<%@ Page Title="" Language="C#" MasterPageFile="~/Main.Master" AutoEventWireup="true" CodeBehind="TestJs.aspx.cs" Inherits="tms.Test.TestJs" %>
<asp:Content ID="Content1" ContentPlaceHolderID="StyleSection" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentSection" runat="server">
    <div class="container">
        <div class="panel">
            <asp:Button ID="btnAlert" OnClick="btnAlert_OnClick" runat="server"/>
        </div>
    </div>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ScriptSection" runat="server">
    <script type="text/javascript">
        function myFunc() {
            $.alert("Hello Mz");
        }
    </script>
</asp:Content>

我的。cs文件是这样的

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace tms.Test
{
    public partial class TestJs : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void btnAlert_OnClick(object sender, EventArgs e)
        {
            ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "newFunc", "myFunc()", true);
        }
    }
}

当我点击按钮时,脚本不会调用并给出一些对象预期的错误。

我真的被这个困住了。请帮帮我。

在按钮点击事件中可以调用scriptmanager

protected void btn_click(object sender, EventArgs e){
ScriptManager.RegisterStartupScript(this,this.GetType(),"Your Comment","myFunc();", true);}

修改脚本如下:

<script type="text/javascript">
    function myFunc() {
        alert("Hello Mz");
    }
</script>

首先,我不明白你为什么在这里使用ScriptManager。一个ASP按钮有一个名为onClientClick的属性。有关详细信息,请参阅此MSDN链接。

你可以在HTML中修改你的按钮代码,如:

<asp:Button ID="btnAlert" OnClick="btnAlert_OnClick" onClientClick="myFunc();" runat="server"/>

备注:onClientClick会在onClick事件之前执行。这是我脑子里写出来的,未经测试!