How to Register and Call JavaScript Functions from Code Behind in ASP.NET (C# and VB.NET)

← PrevNext →

Last Updated: 30th June 2025

Learn how to dynamically call JavaScript functions from server-side applications using ASP.NET. In this tutorial, we'll demonstrate how to invoke JavaScript functions from code-behind in both C# and VB.NET, making your web applications more interactive and responsive.

👉 This guide assumes you already have a foundational understanding of JavaScript statements and code blocks.

In this tutorial, we'll explore three widely-used ASP.NET code-behind methods for injecting client-side scripts. These examples will demonstrate how to effectively use:

01) RegisterClientScriptBlock – Register a block of Script without the "<script>" tags.

02) IsStartupScriptRegistered – Checks if a specific startup script is already registered, returning a Boolean result (true or false).

03) RegisterStartupScript – Registers client-side script code from the server-side code-behind.

The Markup and the Script

The JavaScript function I’m registering and calling from the ASP.NET code-behind is defined within the <script> tag in the page's header section. This function is named script_CalledFrom_CodeBehind().

In addition, I have added a Button control in the body section. The button’s "click event" will call another function named startup(). If you look carefully the markup and script, I have not declared the "startup()" function anywhere. I'll register the function using code behind procedure.

<body>
    <form id="form1" runat="server">
        <div>
            <!--I have a button control, which when clicked will call a JS function registered using code behind procedure.-->
            <input type="button" value="Click it" onclick="startup()" />
        </div>
    </form>
</body>
<script>
    // The script that will be called from code behind when the page loads.
    function script_CalledFrom_CodeBehind(servertime) {
        alert('Current Server Time: ' + servertime);        // Alert server time.
    }
</script>

👉 In this example, I’ll be executing two JavaScript functions, one defined directly on the client side, and the other dynamically registered from the server-side code-behind in ASP.NET.

Code Behind (C#)
using System;

public partial class _Default : System.Web.UI.Page 
{
    protected void form1_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            // Register the first JavaScript function to be executed on page load.
            string loadScript = "window.onload = function() {" +
                                "script_CalledFrom_CodeBehind('" + DateTime.Now.ToString("T") + "');" +
                                "};";
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ServerTimeScript", loadScript, true);

            // Check if the second script is already registered.
            if (!Page.ClientScript.IsStartupScriptRegistered("StartupScript"))
            {
                // Define the JavaScript function to run on button click.
                System.Text.StringBuilder startupScript = new System.Text.StringBuilder();
                startupScript.Append("function startup() {");
                startupScript.Append("alert('Calling another script on Button Click event. " +
                                     "This script is registered at Code Behind.');");
                startupScript.Append("}");

                // Register the startup script.
                Page.ClientScript.RegisterStartupScript(this.GetType(), "StartupScript", startupScript.ToString(), true);
            }
        }
    }
}
See this demo
Code Behind (VB.NET)
Option Explicit On

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles form1.Load
        If Not IsPostBack Then

            ' Register the first JavaScript function to be executed on page load.
            Page.ClientScript.RegisterClientScriptBlock _
                (Me.GetType, "Server Time", "window.onload = function() {" &
                                   "script_CalledFrom_CodeBehind('" & TimeOfDay & "');" &
                                   "};", True)

            ' Check if the second script is already registered.
            If Not (Page.ClientScript.IsStartupScriptRegistered("Registered Script")) Then

                ' Define the JavaScript function to run on button click.
                Dim startupScript As New Text.StringBuilder()
                startupScript.Append("function startup() {")
                startupScript.Append("alert('Calling another script on Button Click event. " &
                                     "This script is registered at Code Behind.');")
                startupScript.Append("}")

                ' Register the startup script.
                Page.ClientScript.RegisterStartupScript(Me.GetType(), "StartupScript", startupScript.ToString(), True)
            End If
        End If
    End Sub
End Class

← PreviousNext →