ClientScriptManager.IsClientScriptBlockRegistered 方法
定义
重载
| IsClientScriptBlockRegistered(String) |
使用指定键确定 Page 对象是否注册了客户端脚本块。Determines whether the client script block is registered with the Page object using the specified key. |
| IsClientScriptBlockRegistered(Type, String) |
使用键和类型确定 Page 对象是否注册了客户端脚本块。Determines whether the client script block is registered with the Page object using a key and type. |
IsClientScriptBlockRegistered(String)
public:
bool IsClientScriptBlockRegistered(System::String ^ key);
public bool IsClientScriptBlockRegistered (string key);
member this.IsClientScriptBlockRegistered : string -> bool
Public Function IsClientScriptBlockRegistered (key As String) As Boolean
参数
- key
- String
要搜索的客户端脚本块的键。The key of the client script block to search for.
返回
如果注册了客户端脚本块,则为 true;否则为 false。true if the client script block is registered; otherwise, false.
示例
<%@ 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);
}
// 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());
}
}
</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>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
' Define the name and type of the client scripts on the page.
Dim csname1 As String = "PopupScript"
Dim csname2 As String = "ButtonClickScript"
Dim cstype As Type = Me.GetType()
' Get a ClientScriptManager reference from the Page class.
Dim cs As ClientScriptManager = Page.ClientScript
' Check to see if the startup script is already registered.
If (Not cs.IsStartupScriptRegistered(cstype, csname1)) Then
Dim cstext1 As String = "alert('Hello World');"
cs.RegisterStartupScript(cstype, csname1, cstext1)
End If
' Check to see if the client script is already registered.
If (Not cs.IsClientScriptBlockRegistered(cstype, csname2)) Then
Dim cstext2 As 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())
End If
End Sub
</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>
注解
在调用方法之前调用此方法 RegisterClientScriptBlock ,以避免注册重复脚本。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.
此方法的重载 IsClientScriptBlockRegistered 调用重载,该重载采用和将 key type 类型设置为对象的参数。 PageThis overload of the IsClientScriptBlockRegistered method calls the overload that takes both a key and a type parameter with the type set as a Page object
另请参阅
适用于
IsClientScriptBlockRegistered(Type, String)
public:
bool IsClientScriptBlockRegistered(Type ^ type, System::String ^ key);
public bool IsClientScriptBlockRegistered (Type type, string key);
member this.IsClientScriptBlockRegistered : Type * string -> bool
Public Function IsClientScriptBlockRegistered (type As Type, key As String) As Boolean
参数
- type
- Type
要搜索的客户端脚本块的类型。The type of the client script block to search for.
- key
- String
要搜索的客户端脚本块的键。The key of the client script block to search for.
返回
如果注册了客户端脚本块,则为 true;否则为 false。true if the client script block is registered; otherwise, false.
例外
客户端脚本类型为 null。The client script type is null.
示例
下面的代码示例演示方法的用法 IsClientScriptBlockRegistered 。The following code example demonstrates the use of the IsClientScriptBlockRegistered method. 请注意,如果已删除用于检查现有客户端脚本块的逻辑,则呈现的页面的 HTML 源代码中将不会有两个重复的客户端脚本,因为 RegisterClientScriptBlock 方法会检查是否有重复项。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>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
' Define the name and type of the client scripts on the page.
Dim csname1 As String = "PopupScript"
Dim csname2 As String = "ButtonClickScript"
Dim cstype As Type = Me.GetType()
' Get a ClientScriptManager reference from the Page class.
Dim cs As ClientScriptManager = Page.ClientScript
' Check to see if the startup script is already registered.
If (Not cs.IsStartupScriptRegistered(cstype, csname1)) Then
Dim cstext1 As String = "alert('Hello World');"
cs.RegisterStartupScript(cstype, csname1, cstext1, True)
End If
' Check to see if the client script is already registered.
If (Not cs.IsClientScriptBlockRegistered(cstype, csname2)) Then
Dim cstext2 As 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)
End If
End Sub
</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>
注解
在调用方法之前调用此方法 RegisterClientScriptBlock ,以避免注册重复脚本。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. 例如,在使用 Page 实例访问资源时,可以指定 Page 类型。For instance, when using a Page instance to access the resource, you specify the Page type.