Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comment créer un object javascript en asp.net?

1 réponse
Avatar
Ben
Bonjour,

Le fichier index.aspx contient une balise javascript qui réfère un autre
fichier aspx (test.aspx).
Le fichier 'test.aspx' doit chercher des données d'une base de données,
mettre les données dans une hashtable, puis crëer un object javascript avec
ces données.

Mon problème est: comment renvoyer ces données vers javascript pour qu'elles
soient en fin de compte lues par 'index.aspx'?

Le code:

index.aspx
----------
<%@ Page Language="VB" %>

<html>
<head></head>
<body>
<form ID="form1" runat="server" />
...
...
</form>
</body>
<script type="text/javascript" src="scripts/test.aspx"></script>
</html>

---------------------------------------------------

test.aspx
---------
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Collections.Generic" %>

<script runat="server">
Sub page_load()

Response.AddHeader("Content-Type", "text/javascript")

Dim comd As SqlCommand
Dim sql As String
Dim myhash = New Hashtable()

'ici les données sont récupérées et miese dans la hashtable
'le code est incomplet pour simplifier, mais ceci marche
Using mConnection As New SqlConnection(param.ConnectionString)
mConnection.Open()
sql = "select nm from mytable"
...
If dtreader.HasRows Then
While dtreader.Read()
nm = dtreader.GetString(0)
if nm="1" then
myhash.Add(nm, "oui")
else
myhash.Add(nm, "non")
End While
End If
dtreader.Close()
End Using

'ici je veux créer un object javascript avec les données de la hashtable
(keys et values)

'javascript: var mystat = new Object();\n" ???

Dim objKey As Object
Dim objValue As Object
For Each objKey In myhash.Keys
'javascript: mystat.objKey = myhash.Item(objKey);\n ???
Next objKey

End Sub
</script>

Merci
Ben

1 réponse

Avatar
Patrice
Voir par exemple ClientScript.RegisterArrayDeclaration pour générer le code
javascript qui créera un tableau avec ces valeurs.

Par exemple :

Dim data() As String = {"A", "B", "C"}
For Each value In data
ClientScript.RegisterArrayDeclaration("data", "'" & value & "'")
Next

génère :

<script type="text/javascript">
//<![CDATA[
var data = new Array('A', 'B', 'C');
//]]>
</script>

Pour des scénarios plus compliqués, il serait sans doute aussi possible de
créer une "PageMethod", ASP.NET prenant en charge la plomberie sous-jacente.

--
Patrice


"Ben" a écrit dans le message de news:

Bonjour,

Le fichier index.aspx contient une balise javascript qui réfère un autre
fichier aspx (test.aspx).
Le fichier 'test.aspx' doit chercher des données d'une base de données,
mettre les données dans une hashtable, puis crëer un object javascript
avec ces données.

Mon problème est: comment renvoyer ces données vers javascript pour
qu'elles soient en fin de compte lues par 'index.aspx'?

Le code:

index.aspx
----------
<%@ Page Language="VB" %>

<html>
<head></head>
<body>
<form ID="form1" runat="server" />
...
...
</form>
</body>
<script type="text/javascript" src="scripts/test.aspx"></script>
</html>

---------------------------------------------------

test.aspx
---------
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Collections.Generic" %>

<script runat="server">
Sub page_load()

Response.AddHeader("Content-Type", "text/javascript")

Dim comd As SqlCommand
Dim sql As String
Dim myhash = New Hashtable()

'ici les données sont récupérées et miese dans la hashtable
'le code est incomplet pour simplifier, mais ceci marche
Using mConnection As New SqlConnection(param.ConnectionString)
mConnection.Open()
sql = "select nm from mytable"
...
If dtreader.HasRows Then
While dtreader.Read()
nm = dtreader.GetString(0)
if nm="1" then
myhash.Add(nm, "oui")
else
myhash.Add(nm, "non")
End While
End If
dtreader.Close()
End Using

'ici je veux créer un object javascript avec les données de la hashtable
(keys et values)

'javascript: var mystat = new Object();n" ???

Dim objKey As Object
Dim objValue As Object
For Each objKey In myhash.Keys
'javascript: mystat.objKey = myhash.Item(objKey);n ???
Next objKey

End Sub
</script>

Merci
Ben