Member 12119075 Ответов: 1

Как динамически отправлять серверные данные в клиентский java-скрипт


Я выбрал элементы флажка автомобиль, велосипед, грузовик

используя foreach я беру данные из базы данных для выбранного элемента с помощью
string data1 = serializer.Serialize(rows);


проблема в том, что мне нужно (передать )отображать данные один за другим для выбранных элементов
ScriptManager.RegisterClientScriptBlock
я использовал это

я выхожу только для грузовика, данные передаются в скрипт только тогда, когда загрузка страницы полностью завершается . что мне нужно, так это то, что мне нужно сломать и немедленно отобразить в скрипте

Что я уже пробовал:

если (data1 != "")
{
HiddenField1.Значение = данные1;
//string strinfo = " data('" + data1 + "');";
Элемента управления scriptmanager.RegisterClientScriptBlock (это.Страница, Страница.GetType ()," Text"," data ()", true);

}

F-ES Sitecore

Если этот код выполняется в цикле для каждого элемента, то эта строка

HiddenField1.Значение = данные1;

переопределяет предыдущие данные. Таким образом, в первом цикле он установлен на "автомобиль", во втором-на "велосипед", а в третьем-на "грузовик", причем каждый из них перезаписывает последний, поэтому, как только ваш цикл выполнен, он содержит только данные для грузовика.

Ваша вторая проблема заключается в том, что при использовании RegisterClientScriptBlock параметр "ключ" ("текст" в вашем примере) используется для того, чтобы скрипт был добавлен только один раз. В первом цикле вы добавляете вызов "data ()" с текстом ключа, во втором цикле вы снова пытаетесь добавить что-то с этим ключом, так что .net просто игнорирует это добавление и так далее. В зависимости от того, что делают "данные", это может не быть проблемой, но это то, что вам нужно иметь в виду на будущее.

Member 12119075

каким будет решение для этого сделать

F-ES Sitecore

Это зависит от того, что вы хотите сделать с клиентом. Лично я бы просто составил список "строка" из ваших трех элементов, а затем проанализировал его в JSON и написал что-то на странице, например

var data = & lt%=JsonGoesHere% & gt;;

это привело бы к созданию объекта json в "данных" на клиенте, который затем можно было бы использовать в js для заполнения ваших полей или делать с ними что угодно. Лучше использовать только ваш .net-код для генерации данных для записи на страницу и использовать js на странице, а не пытаться генерировать много динамических js в вашем серверном коде.

1 Ответов

Рейтинг:
1

ZurdoDev

Используйте событие document. ready в JavaScript. $ (document ). ready () / учебный центр jQuery[^]. Это сработает в JavaScript, когда страница будет загружена. Код, который у вас есть, работает на сервере.