Как я могу записать код JavaScript в asp.net в коде позади использования C#?
Например: у Меня есть событие кнопки щелчка, когда я нажимаю кнопку, я хочу вызвать этот код сценария Java:
alert("You pressed Me!");
Я хочу знать, как использовать сценарий Java из кода позади.
Взгляните на класс ScriptManager ' RegisterClientScriptBlock и Методы RegisterStartupScript .
Правильным ответом обычно является "Не нужно". Лучше определить свой код в .js файле и использовать jQuery для подключения нужных событий.
$(document).ready(function() {
$('#myBtn').click(function() {
alert('Handler for .click() called.');
});};
Один из способов поместить javascript на страницу в определенное место выглядит так:
ASP.Net
<script type="text/javascript">
<asp:Literal id="litScript" runat="server" />
</script>
C#
litScript.Text = "alert("Hello!");"
Конечно, вы можете поместить туда что угодно, и я бы рекомендовал библиотеку javascript.
Использование Scriptmanager - тоже вариант.
Если вы хотите зарегистрировать скрипт, который будет использоваться в связи с UpdatePanel
(AJAX), используйте класс ScriptManager
, как указал Sani Huttunen.
В противном случае вы должны использовать класс ClientScriptManager (методы Page.ClientScript.RegisterClientScriptBlock или Page.ClientScript.RegisterStartupScript)
Как отметил другой пользователь, обычной регистрации скрипта в коде позади можно и нужно избегать. Это не очень хорошая практика, и вы должны делать это только в тех случаях, когда у вас нет другого выбора.
Не ответ, а предложение. Смешивание js в коде программной части может снова преследовать вас, я согласен с Адрианом Магдасом. Каждый раз, когда вам нужно внести простое изменение / обновление в свой javascript, вам придется перестраивать свой проект, что означает повторное развертывание, а не просто выталкивание одного файла .js.
Что-то вроде:
btnSomething.ClientClick = "alert('You pressed me!');";
Вы также можете прочитать об элементе управления ScriptManager и выводах блоков скрипта.