Может ли кто-нибудь привести хорошие примеры вызова функции JavaScript из CodeBehind и наоборот?
c#
javascript
asp.net
ssmsnet
источник
источник
Ответы:
Вы можете попробовать это:
источник
Page.ClientScript.RegisterClientScriptBlock
требуется вместо этого см. Этот пост для информации . 2. Возможно, стоит упомянуть, что для того, чтобы MyFunction () работала, MyFunction () должна быть определена перед тегами формы или внутри них, но НЕ после конечного тега </ form> (в противном случае ожидаемая ошибка объекта будет происходит)ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "text", "openDep()", true);
работает.this.GetType()
выдает ошибку для меня.asp:UpdatePanel
и записан в событии кнопки. Что приводит к постбэку страницы.C # для JavaScript: вы можете зарегистрировать блок скрипта для запуска на странице, как показано ниже:
замените
alert()
деталь именем вашей функции.Для вызова метода C # из JavaScript вы можете использовать
ScriptManager
илиjQuery
. Я лично пользуюсьjQuery
. Вам нужно украсить метод, который вы хотите вызвать из JavaScript, с помощьюWebMethod
атрибута. Для получения дополнительной информации о вызове C # метода (вызываемогоPageMethod
)jQuery
вы можете обратиться к посту Дэйва Уорда .источник
Вызов функции JavaScript из кода позади
Шаг 1 Добавьте ваш код Javascript
Шаг 2 Добавьте 1 Script Менеджер в вашем WebForm и добавьте 1 кнопку слишком
Шаг 3 Добавьте этот код в событие нажатия кнопки
источник
ScriptManager
как в этом ответе,Page.ClientScript
а не как в других ответах. Может быть связано сasp:UpdatePanel
комментарием под принятым ответом.Вы не можете сделать это напрямую. В стандартных WebForms JavaScript интерпретируется браузером, а C # - сервером. То, что вы можете сделать, чтобы вызвать метод с сервера, используя JavaScript, это.
WebMethod
какattribute
в целевых методах.ScriptManager
настройкуEnablePageMethods
какtrue
.PageMethods
.Как это:
Шаг 1
Шаг 2: Добавление
ScriptManager
наPage
Шаг 3: вызов метода с использованием JavaScript
Посмотрите на эту ссылку.
Для вызова функции JavaScript с сервера вы можете использовать
RegisterStartupScript
:источник
GetProducts()
Функция - это просто функция с выделенным кодом, которая будет жить в контроллере в приложении MVC, поэтому теги идут поверх любой функции, которую вы хотите поместить в контроллер, который вы собираетесь вызывать из JavaScript. ,Если вам нужно отправить значение в качестве параметра.
источник
Другая вещь, которую вы можете сделать, - создать переменную сеанса, которая будет установлена в коде, затем проверить состояние этой переменной и затем запустить ваш javascript. Хорошо, что это позволит вам запускать сценарий именно там, где вы хотите, вместо того, чтобы выяснять, хотите ли вы, чтобы он работал в DOM или глобально.
Примерно так: Код позади:
В JavaScript
источник
Ты не можешь. Codebehind работает на сервере, в то время как JavaScript работает на клиенте.
Однако вы можете добавить
<script type="text/javascript">someFunction();</script>
к своему выводу и, таким образом, вызвать функцию JS, когда браузер анализирует вашу разметку.источник
Вы можете использовать литерал:
источник
IIRC Code Behind компилируется на стороне сервера, а javascript интерпретируется на стороне клиента. Это означает, что нет прямой связи между ними.
С другой стороны, вы можете сделать так, чтобы клиент и сервер общались через изящный инструмент AJAX. http://en.wikipedia.org/wiki/Asynchronous_JavaScript_and_XML
источник
Попробуйте это в Code Behind, и это будет работать на 100%
Напишите эту строку кода в вашем коде позади файла
И это страница веб-формы
источник
источник
Рабочий пример: _
Код позади
Возможные подводные камни: -
CodeBehind="History.aspx.cs"
указывает на неправильную страницуисточник
Я заметил, что многие ответы здесь используются,
ScriptManager.RegisterStartupScript
и если вы собираетесь это сделать, это неправильный способ сделать это. Правильный способ заключается в использованииScriptManager.RegisterScriptBlock([my list of args here])
. Причина в том, что вы должны использовать RegisterStartupScript только при загрузке вашей страницы (отсюда и название RegisterStartupScript).В VB.NET:
в C #:
Конечно, я надеюсь, что само собой разумеется, что вам нужно заменить ключ своим идентификатором ключа и, вероятно, следует переместить все это в sub / function / method и передать key и someJavascriptObject (если ваш метод javascript требует, чтобы ваш arg был объект JavaScript).
Документы MSDN:
https://msdn.microsoft.com/en-us/library/bb338357(v=vs.110).aspx
источник
достаточно использовать вашу функцию
источник
Вот как я это сделал.
HTML-разметка с меткой и кнопками управления выглядит следующим образом.
Функция JavaScript здесь.
Код для запуска функции JavaScript находится здесь.
источник
это работает для меня
источник
Так как я не смог найти решение, которое было за кодом, которое включает в себя попытку
ClientScript
иScriptManager
как mutanic и Орландо Эррера сказал в этом вопросе (они оба почему-то не смогли), я предложу интерфейсное решение, которое использует нажатия кнопок для других, если они в том же положении, что и я. Это сработало для меня:HTML-разметка:
JavaScript:
Я просто использую кнопку ASP.NET, которая использует
OnClientClick
свойство, которое запускает функции сценариев на стороне клиента, которые являются JavaScript. Ключевыми моментами, которые следует здесь отметить, является использованиеreturn
ключевого слова в вызове функции и в самой функции. Я читал документы, которые не используются,return
но все же заставляют работать кнопки - почему-то у меня это не получалось.return false;
Заявление в функции задает постбэк не должно произойти. Вы также можете использовать это утверждение вOnClientClick
свойстве:OnClientClick="myFunction() return false;"
источник
Я использовал ScriptManager в Code Behind, и он работал нормально.
Если вы используете UpdatePanel в ASP Frontend. Затем введите имя UpdatePanel и «имя функции», определенные тегами сценария.
источник
Спасибо «Лико», просто добавьте комментарий к его ответу.
В
'
переменную добавлены одинарные кавычки ( ), иначе будет выдано сообщение об ошибке:источник
Вы не можете вызвать функцию Javascript из CodeBehind, потому что файл CodeBehind содержит код, который выполняется на стороне сервера на веб-сервере. Код Javascript выполняется в веб-браузере на стороне клиента.
источник
Вы можете предоставить методы C # на страницах с кодовым названием для вызова через JavaScript с помощью атрибута ScriptMethod .
Вы не можете вызвать JavaScript из CodeBehind - этот код существует исключительно на клиенте.
источник