В итоге :
У меня есть веб-страница ASP.NET, которая вызывает обратную передачу AJAX на сервер.Когда этот обработчик событий запускается (в коде), он генерирует некоторый JavaScript, который я затем хочу запустить на клиенте.Не уверен, как этого добиться.
Подробно : у меня есть веб-страница ASP.NET с несколькими элементами, отображаемыми на странице.
Как "приятно иметь"Msgstr "я хочу отобразить зеленый кружок или красный крестик рядом с каждым элементом (они различаются в зависимости от каждого элемента).Поскольку пользователю не нужно видеть эти значки, а также потому, что для определения того, какой значок должен отображаться для каждого элемента, требуется несколько секунд, я хочу выполнить это после загрузки страницы, поэтому в обратном вызове AJAX.
Поэтому я так и думал.При создании страницы я бы создавал обе иконки рядом с каждым объектом и создавал их в стиле «скрытый».Я также запомнил бы идентификатор клиента каждого из них.
Затем, когда происходит обратный вызов, я извлекаю необходимые данные из базы данных и затем создаю функцию JavaScript, которая изменяет отображение для каждого из значков, которые я хочупоказывать из «скрытого» в «видимый».
Я думал, что смогу достичь этого, используя объект ScriptManager.
Вот очень тривиальная версия моего кода на стороне сервера (C #)
void AjaxHandler(object sender, EventArgs e)
{
// call to database
string jscript = "alert('wibble');";
ScriptManager.RegisterStartupScript(this, this.GetType(), "uniqueKey", jscript);
}
Очевидно, здесь я просто пытаюсь получить предупреждение о срабатывании после обратной передачи ... в реальной жизни у меня была бы функция JavaScript для изменения отображения всех значков, которые я хочу отобразить.
Когда я запускаю этот код, выполняется серверный код, но на сервере ничего не происходит.
Я также пробовал:
ScriptManager.RegisterClientScriptBlock()
Page.RegisterStartupScript()
Page.RegisterClientScriptBlock()
Page.ClientScript.RegisterStartupScript()
Page.ClientScript.RegisterClientScriptBlock()
, но ни один из них не работает....
FireFox показывает следующую ошибку JavaScript:
Ошибка: необработанное исключение: [Исключение ... «Код не может быть вставлен в указанную точку в иерархии»:"3" nsresult: "0x80530003 (NS_ERROR_DOM_HIERARCHY_REQUEST_ERR) "location:" http://localhost/MyWebSiteName/Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_RadScriptManager1_TSM&compress=1&_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d3.5.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3a3de828f0-5e0d-4c7d-a36b-56a9773c0def%3aea597d4b%3ab25378d2%3bTelerik.Web.UI%2c+Version%3d2009.3.1314.20%2c+Culture%3dneutral%2c+PublicKeyToken%3d121fae78165ba3d4%3aen-US%3aec1048f9-7413-49ac-913a-b3b534cde186%3a16e4e7cd%3aed16cbdc%3a874f8ea2%3af7645509%3a24ee1bba%3a19620875%3a39040b5c%3af85f9819 Линия: 1075 "]
Кто-нибудь знает, разрешено ли то, что я пытаюсь сделать?
Если нет - то, что моеальтернатива?
Спасибо