Как передать классический массив переменных сеанса asp на клиентский JavaScript? - PullRequest
1 голос
/ 05 марта 2011

У меня есть переменная Session, которая представляет собой массив целых чисел, например:

myArray {1,4,3,5,6,7,9,2, ... n}

Я пытаюсь передать это в сеансе var <% = Session ("myArray")%> моему клиентскому JavaScript.Я могу сделать это, если я возьму сеанс var и преобразую его в строку, подобную этой:

    var b = '<%=Session("myArray")%>';
    var bob = new Array();
    bob = b.split(',');

Мне просто интересно, есть ли более прямой способ передачи массива, который исключает необходимость преобразованияперед передачей в строку, чтобы я мог передать его как массив?

Спасибо

Ответы [ 3 ]

1 голос
/ 05 марта 2011

вы можете разбирать целые числа во что-то, что уже является массивом, так что вы боб массива будете выглядеть так:

var bob = [<%=GetIntegersString(Session("myArray"))%>];

когда страница обслуживается клиенту, она должна выглядеть следующим образом:

var bob = [1,4,3,5,6,7,9];

функция GetIntegersString - это то, что вам нужно реализовать

0 голосов
/ 06 марта 2011

Это должно работать просто отлично:

var bob = [<%=Join(Session("myArray"), ", ")%>];
0 голосов
/ 05 марта 2011

JSON - это способ выражения литерального значения в Javascript, поэтому вы можете преобразовать свой массив в json, а затем назначить его напрямую:

var bob = '<%=array_to_json(Session("myArray"))%>';

http://www.json.org рекомендует некоторые утилиты ASP для преобразования данных в json:

http://tforster.wik.is/ASP_Classic_Practices_For_The_21st_Century/JSON4ASP
http://code.google.com/p/aspjson/
http://www.webdevbros.net/2007/04/26/generate-json-from-asp-datatypes/

Узнайте больше о JSON, чтобы узнать, как выразить любое значение как литерал в JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...