Как динамически отправлять серверные данные в клиентский 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 в вашем серверном коде.