В заключение:Как сгенерировать JavaScript во время обратного вызова AJAX (postback), а затем выполнить его в браузере?
У меня есть веб-страницы ASP.NET, который вызывает обратную передачу AJAX на сервер. Когда этот обработчик событий запускается (в коде позади), он генерирует некоторый JavaScript, который затем я хочу запустить в клиенте. Не знаете, как это достичь.
Подробно: У меня есть веб-страница ASP.NET с несколькими элементами, отображаемыми на странице.
Как «приятно иметь», я хочу отображать либо зеленый круг, либо красный крест рядом с каждым элементом (они различаются в зависимости от каждого элемента). Поскольку пользователю не важно видеть эти значки, а также потому, что для каждого элемента требуется несколько секунд, какой значок должен отображаться для каждого элемента, я хочу выполнить это после загрузки страницы, поэтому в обратном вызове 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 для изменения отображения всех значков, которые я хочу отобразить.
Когда я запустил это, выполняется код serveride, но на сервере ничего не происходит.
Я также попытался:
ScriptManager.RegisterClientScriptBlock()
Page.RegisterStartupScript()
Page.RegisterClientScriptBlock()
Page.ClientScript.RegisterStartupScript()
Page.ClientScript.RegisterClientScriptBlock()
, но ни один из них не работает ....
FireFox показывает следующее сообщение об ошибке JavaScript:
Error: uncaught exception: [Exception... "Node cannot be inserted at the specified point in the hierarchy" code: "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 Line: 1075"]
Кто-нибудь знает, если что я пытаться сделать даже разрешено?
Если нет - какая у меня альтернатива?
Спасибо
Вы должны добавили свой вопрос в AXAX теге – Wazzzy