#javascript #asp.net
#javascript #asp.net
Вопрос:
Я хочу запустить модальный параметр на Load_Page на моем ASP.NET Приложение на C # и не работает. Это код JavaScript для его запуска:
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "none", "<script>$('#miModal').modal('show');</script>", false);
Дело в том, что я использую тот же модал с тем же кодом в одной кнопке, и это работает нормально. В чем может быть проблема? Что-то работает по-другому с событием Page_Load??
Я использовал UpdatePanel, ContentTemplate в кнопке и ScriptManager в файле .aspx. Возможно, это имеет значение.
Комментарии:
1. Вы получаете ошибку в окне консоли JavaScript в браузере? Это невероятно важно упомянуть, если у вас возникли проблемы с запуском JavaScript. В этом случае вы, вероятно, получите сообщение об ошибке о том, что jQuery не существует. Но на самом деле у меня возникает вопрос: почему вы делаете это из Page_Load? Почему вы не делаете это в обычной разметке страницы?
2. @mason Я никогда не использовал консоль Windows, но вот ошибка:
Uncaught ReferenceError: $ is not defined at MyPage.aspx:100
. И строка 100 является частью кода для запуска модала:<script>$('#miModal').modal('show');</script>
. И хорошо, я хочу запустить modal в pageload, потому что это форма заявки с некоторым текстовым полем для заполнения.3.
$
это оператор jQuery. Все в точности так, как я сказал, вы выполняете этот JavaScript до загрузки библиотеки jQuery (или вы вообще не загружаете jQuery). И ваши рассуждения не имеют смысла, почему вы должны делать это из Page_Load в C #. Независимо от того, есть у него форма заявки или нет, вы все равно можете встроить этот скрипт в разметку страницы вместо исходного кода. Это дало бы вам больше контроля над порядком загрузки / выполнения вашего JavaScript.
Ответ №1:
Во-первых, убедитесь, что ваша библиотека jquery уже загружена. Кроме того, есть изменение, элемент управления еще не был загружен в DOM, поэтому используйте:
<script>$( document ).ready(function() {$('#miModal').modal('show');});</script>