ClientScriptManager.RegisterArrayDeclaration(String, String) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy JavaScript-tömbdeklarációt regisztrál az Page objektummal tömbnév és tömbérték használatával.
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)
Paraméterek
- arrayName
- String
A regisztrálandó tömb neve.
- arrayValue
- String
A regisztrálandó tömbérték vagy értékek.
Kivételek
arrayName az null.
Példák
Az alábbi példakód bemutatja a módszerek és RegisterArrayDeclaration a RegisterHiddenField módszerek használatát. A példa egy tömböt és egy rejtett értéket regisztrál, és egy OnClick gomb eseményét határozza meg <input> a tömb két értékének és a rejtett érték összegének kiszámításához.
<%@ 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>
Megjegyzések
Ellenőrzi RegisterArrayDeclaration , hogy létezik-e olyan regisztrált tömb, amelynek neve megegyezik a arrayName paraméterben megadott névvel, és ha igen, hozzáadja a arrayValue paraméterben megadott értékeket. Mivel a mögöttes tárolási mechanizmus egy ArrayList, duplikáltak engedélyezettek. Ha a paraméter nevével megegyező nevű arrayName regisztrált tömb nem létezik, létrejön, és a paraméter értékei arrayValue hozzá lesznek adva.
Ha sztringkonstansokat szeretne használni az eredményül kapott JavaScript-tömbben, a paraméterben szerepeltesse az egyszeres idézőjeleket (') vagy a arrayValue szökött idézőjeleket (\). A paraméter értékének arrayValue egyetlen elemnek kell lennie. Ha egynél több értéket kell hozzáadni a tömbhöz, több hívást is kezdeményezhet a RegisterArrayDeclaration metódussal.