У меня есть пользовательский элемент управления, который отображается как гиперссылка:
Public Class TestControl
Inherits System.Web.UI.WebControls.WebControl
Implements IPostBackEventHandler
Public Sub RaisePostBackEvent(ByVal eventArgument As String) Implements System.Web.UI.IPostBackEventHandler.RaisePostBackEvent
Trace.WriteLine("Hyperlink 1 clicked")
End Sub
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
writer.WriteLine("<a href=""{0}"" id=""{1}"">Hyperlink 1</a>", _
Page.ClientScript.GetPostBackClientHyperlink(Me, "Hyperlink 1"), _
Me.ClientID)
End Sub
End Class
Это прекрасно работает.Он также хорошо работает, когда помещается в UpdatePanel
: обновляется только панель UpdatePanel, полная обратная передача не выполняется.
Теперь я хотел бы вывести вторую гиперссылку в методе Render
.Если я использую один и тот же идентификатор (Me.ClientID
), все работает хорошо, но это, очевидно, приводит к некорректному HTML (никакие два элемента управления не могут иметь одинаковый атрибут id
).Если я использую разные идентификаторы клиентов (например, Me.ClientID & "_1"
и Me.ClientID & "_2"
), при щелчке гиперссылок выполняется полная обратная передача.
Есть ли способ сообщить ASP.NET AJAX: " Всеобратные передачи следующих идентификаторов клиента должны выполняться асинхронно: ..."?