Я пытаюсь создать асинхронную обратную передачу в ASP.NET __doPostBack()
, но я не знаю, как это сделать. Я хочу использовать ванильный JavaScript.
Что-то простое, например, нажатие кнопки может вызвать __doPostBack()
событие. Я просто пытаюсь узнать, как работает механизм.
c#
javascript
asp.net
postback
Майкл Керуте
источник
источник
__doPostBack
фактически не поддерживается. Если на вашей странице нет ничего, что вызывает обратную передачу, asp.net может опустить определение__doPostBack
функции. Поддерживаемый подход заключается в вызовеClientScriptManager.GetPostBackEventReference
, который возвращает строку в форме__doPostBack(...)
и гарантирует, что__doPostBack
она определена.Ответы:
Вы можете попробовать это в своей веб-форме с помощью кнопки с именем btnSave, например:
И в вашем коде добавьте что-то вроде этого, чтобы прочитать значение и воздействовать на него:
Попробуйте и дайте нам знать, если это сработало для вас.
источник
Это также хороший способ заставить серверные элементы управления выполнять обратную передачу внутри FancyBox и / или jQuery Dialog . Например, в FancyBox-div:
JavaScript:
Page_Load на стороне сервера:
источник
ClientIDMode="Static"
атрибутMyButton
, чтобы ASP не искажал идентификатор кнопки.Вот краткий учебник о том, как
__doPostBack()
работает.Если честно, я этим мало пользуюсь; по крайней мере, напрямую. Многие серверные элементы управления, (например,
Button
,LinkButton
,ImageButton
, частиGridView
и т.д.) использование в__doPostBack
качестве своего почтового механизма обратно.источник
Я просто хотел бы добавить кое-что в этот пост
asp:button
. Я попробовал clientId, и он не работает для меня:Однако получение UniqueId, похоже, отправляет обратно на сервер, как показано ниже:
Это может помочь кому-то еще в будущем, следовательно, опубликовать это.
источник
ClientID
, потому что я использовалClientIDMode = Static
. ИспользованиеUniqueID
сработало.Старый вопрос, но я бы хотел кое-что добавить: при вызове
doPostBack()
вы можете использовать метод действия сервера для действия.Для примера:
Сработает на сервере:
Я не нашел лучшего способа получить аргумент, поэтому я все еще использую
Request["__EVENTARGUMENT"]
.источник
Как уже говорили другие, вам необходимо предоставить UniqueID элемента управления методу __doPostback ().
На сервере отправленные значения формы идентифицируются атрибутом name полей на странице.
Причина, по которой работает UniqueID, заключается в том, что UniqueID и имя фактически совпадают, когда серверный элемент управления отображается в HTML.
Вот статья, которая описывает, что такое UniqueID:
источник
Вот как я это делаю
источник