У меня очень специфическая проблема.У меня есть пользовательский элемент управления (код ниже), который должен действовать как кнопка.Я занимался написанием пользовательского серверного элемента управления, но я думаю, что это уже слишком.Другая опция, с которой я столкнулся, это то, что тег div запускает щелчок JavaScript и запускает событие нажатия кнопки asp: button.Но я также чувствую, что это тоже хакерство.
Решение, которое я ищу, состоит в том, что всякий раз, когда пользователь нажимает на элемент управления, он запускает событие onClick (действующее как обычная кнопка, за исключением моей желаемой разметки).
(пользовательский код управления) для шрифта существует CSS-стиль, который не должен влиять на проблему.
<div style="border:2px solid black; background-color:white" >
<div>
<asp:Label ID="lblMeetingCityState" runat="server" Text='<%# Eval("City") %>'></asp:Label>
</div>
<div>
<asp:Label ID="lblMeetingDate" runat="server" Text='<%# Eval("MeetingDate") %>'></asp:Label>
</div>
<div>
<asp:Label ID="lblMeetingSite" runat='server' Text='<%# Eval("Location") %>'></asp:Label>
</div>
</div>
код позади, чтобы вызвать событие при нажатии
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Partial Public Class MeetingButton
Inherits System.Web.UI.UserControl
Implements System.Web.UI.IPostBackEventHandler
Public Event Click As EventHandler
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Overridable Sub OnClick(ByVal E As EventArgs)
RaiseEvent Click(Me, E)
End Sub
Public Sub RaisePostBackEvent(ByVal eventArgument As String) _
Implements IPostBackEventHandler.RaisePostBackEvent
OnClick(New EventArgs())
End Sub
End Class