天天看點

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代碼的方法(無重新整理)