天天看点

asp.net点击服务端按钮执行js代码的方法(无刷新)

作者:走进少儿编程

有一个服务端的按钮,在执行完一系列任务以后,要弹出一个js对话框,或者执行一段其它的js代码,而这些js代码我并不想写在html端,用下面的函数就能解决这个问题。

using System;
using System.Web.UI;

namespace WebApplication1
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            //直接alert
            JSAlert("Hello!");
        }
        protected void Button3_Click(object sender, EventArgs e)
        {
            //在这里写你的js代码
            string jscodestr = "alert('Hello2222');";
            RunJSCode("jsname", jscodestr);
        }

        /// <summary>
        /// 弹出对话框
        /// <para>如 JSAlert("aaa");</para>
        /// </summary>
        /// <param name="Str">要弹出的字符串</param>
        public void JSAlert(string Str)
        {
            try
            {
                ScriptManager.RegisterStartupScript((Page)System.Web.HttpContext.Current.Handler, ((Page)System.Web.HttpContext.Current.Handler).GetType(), "ALERT", "alert('" + Str + "');", true);
            }
            catch (Exception ErrMsg)
            {

            }
        }

        /// <summary>
        /// 执行一段js代码
        /// </summary>
        /// <param name="jsname">js名称</param>
        /// <param name="jsstrs">js代码内容</param>
        public void RunJSCode(string jsname, string jsstrs)
        {
            ScriptManager.RegisterStartupScript((Page)System.Web.HttpContext.Current.Handler, ((Page)System.Web.HttpContext.Current.Handler).GetType(), jsname, jsstrs, true);
        }
    }
}           

如果觉得刷新的页面,感觉很不好的话,可以套一个updatepanel

<form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:Button ID="Button2" runat="server" OnClick="Button1_Click" Text="Button" />
                    <asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="Button" />
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    </form>           

运行效果:

asp.net点击服务端按钮执行js代码的方法(无刷新)