ClientScriptManager.RegisterArrayDeclaration(String, String) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Registrerar en JavaScript-matrisdeklaration med objektet med Page hjälp av ett matrisnamn och matrisvärde.
public:
void RegisterArrayDeclaration(System::String ^ arrayName, System::String ^ arrayValue);
public void RegisterArrayDeclaration(string arrayName, string arrayValue);
member this.RegisterArrayDeclaration : string * string -> unit
Public Sub RegisterArrayDeclaration (arrayName As String, arrayValue As String)
Parametrar
- arrayName
- String
Matrisnamnet som ska registreras.
- arrayValue
- String
Matrisvärdet eller värdena som ska registreras.
Undantag
arrayName är null.
Exempel
I följande kodexempel visas hur RegisterArrayDeclaration metoderna och RegisterHiddenField används. Exemplet registrerar en matris och ett dolt värde och definierar OnClick händelsen för en <input> knapp för att beräkna summan av två värden i matrisen och det dolda värdet.
<%@ 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 array name and values.
String arrName = "MyArray";
String arrValue = "\"1\", \"2\", \"text\"";
// Define the hidden field name and initial value.
String hiddenName = "MyHiddenField";
String hiddenValue = "3";
// Define script name and type.
String csname = "ConcatScript";
Type cstype = this.GetType();
// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;
// Register the array with the Page class.
cs.RegisterArrayDeclaration(arrName, arrValue);
// Register the hidden field with the Page class.
cs.RegisterHiddenField(hiddenName, hiddenValue);
// Check to see if the script is already registered.
if (!cs.IsClientScriptBlockRegistered(cstype, csname))
{
StringBuilder cstext = new StringBuilder();
cstext.Append("<script type=\"text/javascript\"> function DoClick() {");
cstext.Append("Form1.Message.value='Sum = ' + ");
cstext.Append("(parseInt(" + arrName + "[0])+");
cstext.Append("parseInt(" + arrName + "[1])+");
cstext.Append("parseInt(" + Form1.Name + "." + hiddenName + ".value));} </");
cstext.Append("script>");
cs.RegisterClientScriptBlock(cstype, csname, cstext.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"
onclick="DoClick()"
value="Run Script" />
</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 array name and values.
Dim arrName As String = "MyArray"
Dim arrValue As String = """1"", ""2"", ""text"""
' Define the hidden field name and initial value.
Dim hiddenName As String = "MyHiddenField"
Dim hiddenValue As String = "3"
' Define script name and type.
Dim csname As String = "ConcatScript"
Dim cstype As Type = Me.GetType()
' Get a ClientScriptManager reference from the Page class.
Dim cs As ClientScriptManager = Page.ClientScript
' Register the array with the Page class.
cs.RegisterArrayDeclaration(arrName, arrValue)
' Register the hidden field with the Page class.
cs.RegisterHiddenField(hiddenName, hiddenValue)
' Check to see if the script is already registered.
If (Not cs.IsClientScriptBlockRegistered(cstype, csname)) Then
Dim cstext As StringBuilder = New StringBuilder()
cstext.Append("<script type=""text/javascript\""> function DoClick() {")
cstext.Append("Form1.Message.value='Sum = ' + ")
cstext.Append("(parseInt(" + arrName + "[0])+")
cstext.Append("parseInt(" + arrName + "[1])+")
cstext.Append("parseInt(" + Form1.Name + "." + hiddenName + ".value));} </")
cstext.Append("script>")
cs.RegisterClientScriptBlock(cstype, csname, cstext.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"
onclick="DoClick()"
value="Run Script" />
</form>
</body>
</html>
Kommentarer
Kontrollerar RegisterArrayDeclaration om det finns en registrerad matris med samma namn som det namn som anges i parametern arrayName och lägger i så fall till de värden som anges i parametern arrayValue . Eftersom den underliggande lagringsmekanismen baseras på en ArrayListtillåts dubbletter. Om en registrerad matris med samma namn som parametern arrayName inte finns skapas den och värdena i parametern läggs till i den arrayValue .
Om du vill ha strängliteraler i den resulterande JavaScript-matrisen ska du inkludera enkla citattecken (') eller undantagna dubbla citattecken (\") i parametern arrayValue . Värdet för parametern arrayValue ska vara ett enda element. Om mer än ett värde behöver läggas till i matrisen gör du flera anrop med hjälp av RegisterArrayDeclaration metoden .