ClientScriptManager.IsClientScriptBlockRegistered Method (Type, String)

 

Determines whether the client script block is registered with the Page object using a key and type.

Namespace:   System.Web.UI
Assembly:  System.Web (in System.Web.dll)

public bool IsClientScriptBlockRegistered(
	Type type,
	string key
)

Parameters

type
Type: System.Type

The type of the client script block to search for.

key
Type: System.String

The key of the client script block to search for.

Return Value

Type: System.Boolean

true if the client script block is registered; otherwise, false.

Exception Condition
ArgumentNullException

The client script type is null.

Call this method before calling the RegisterClientScriptBlock method to avoid registering duplicate scripts. This is particularly important if the script requires a large amount of server resources to create.

A client script is uniquely identified by its key and its type. Scripts with the same key and type are considered duplicates. You specify the type based on the object that will be accessing the resource. For instance, when using a Page instance to access the resource, you specify the Page type.

The following code example demonstrates the use of the IsClientScriptBlockRegistered method. Note that, if the logic to check for the existing client script block were removed, there would not be two duplicate client scripts in the HTML source code of the rendered page because the RegisterClientScriptBlock method checks for duplicates. The benefit of checking is to reduce unnecessary computation.

<%@ Page Language="C#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  public void Page_Load(Object sender, EventArgs e)
  {
    // Define the name and type of the client scripts on the page.
    String csname1 = "PopupScript";
    String csname2 = "ButtonClickScript";
    Type cstype = this.GetType();

    // Get a ClientScriptManager reference from the Page class.
    ClientScriptManager cs = Page.ClientScript;

    // Check to see if the startup script is already registered.
    if (!cs.IsStartupScriptRegistered(cstype, csname1))
    {
      String cstext1 = "alert('Hello World');";
      cs.RegisterStartupScript(cstype, csname1, cstext1, true);
    }

    // Check to see if the client script is already registered.
    if (!cs.IsClientScriptBlockRegistered(cstype, csname2))
    {
      StringBuilder cstext2 = new StringBuilder();
      cstext2.Append("<script type=\"text/javascript\"> function DoClick() {");
      cstext2.Append("Form1.Message.value='Text from client script.'} </");
      cstext2.Append("script>");
      cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false);
    }
  }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ClientScriptManager Example</title>
  </head>
  <body>
     <form id="Form1"
         runat="server">
        <input type="text" id="Message" /> <input type="button" value="ClickMe" onclick="DoClick()" />
     </form>
  </body>
</html>

.NET Framework
Available since 2.0
Return to top
Show: