ClientScriptManager.RegisterArrayDeclaration(String, String) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Rejestruje deklarację tablicy JavaScript z Page obiektem przy użyciu nazwy tablicy i wartości tablicy.
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)
Parametry
- arrayName
- String
Nazwa tablicy do zarejestrowania.
- arrayValue
- String
Wartość tablicy lub wartości do zarejestrowania.
Wyjątki
arrayName
to null
.
Przykłady
W poniższym przykładzie kodu pokazano użycie RegisterArrayDeclaration metod i RegisterHiddenField . Przykład rejestruje tablicę i ukrytą wartość i definiuje OnClick
zdarzenie <input>
przycisku w celu obliczenia sumy dwóch wartości tablicy i wartości ukrytej.
<%@ 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>
Uwagi
Sprawdza, RegisterArrayDeclaration czy zarejestrowana tablica istnieje o tej samej nazwie co nazwa określona w parametrze arrayName
, a jeśli tak, dodaje wartości określone w parametrze arrayValue
. Ponieważ podstawowy mechanizm magazynu jest oparty na ArrayListobiekcie , dozwolone są duplikaty. Jeśli zarejestrowana tablica o tej samej nazwie co arrayName
parametr nie istnieje, zostanie utworzona i wartości w parametrze arrayValue
dodanym do niego.
Jeśli chcesz, aby literały ciągu w wynikowej tablicy Języka JavaScript zawierały znaki pojedynczego cudzysłowu (') lub znaki podwójnego cudzysłowu (\") w parametrze arrayValue
. Wartość parametru arrayValue
powinna być pojedynczym elementem. Jeśli do tablicy należy dodać więcej niż jedną wartość, wykonaj wiele wywołań przy użyciu RegisterArrayDeclaration metody .