Tutaj jest problem:Dlaczego prywatny program obsługi zdarzeń nie działa w środowisku ASP.NET
Mam prosty formularz ASP.NET z 2 przyciskami.
Jednym z nich jest tworzony przez przeciąganie przycisk z narzędziami i drugi stworzyłem bezpośrednio w HTML:
<body>
<form id="Form1" method="post" runat="server">
<asp:Button OnClick="ABC" Runat="server" Text="rrr" id="Button1"></asp:Button>
<asp:Button id="Button2" runat="server" Text="Button"></asp:Button>
</form>
</body>
Button2 jest tworzony przy użyciu narzędzi i ma następujące zdarzenie Handler:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim s As String = ""
End Sub
Ten "prywatny program obsługi zdarzeń działa bezproblemowo:
Jednak dla przycisku, który jest tworzony w HTML, mamy następującą procedurę obsługi zdarzenia:
Private Sub ABC(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As Integer = 0
End Sub
Na ten pojawia się następujący błąd complile:
Compiler Error Message: BC30390: 'WebApplication9.WebForm1.Private Sub ABC(sender As Object, e As System.EventArgs)' is not accessible in this context because it is 'Private'.
Gdybym zmiany zakresu obsługi zdarzeń z Private aby chronić to będzie działać. Pytanie brzmi, dlaczego prywatne prace dla jednej obsługi zdarzeń, ale nie dla drugiej.
Posiadanie 'OnClick' ** i **' Uchwyty' oznacza, że próbujesz podłączyć dwa razy - raz z kodu z tyłu i raz z HTML. Jeśli przełączysz się na "Protected", okaże się, że procedura obsługi zdarzeń jest wywoływana dwukrotnie (tak jak obecnie ją masz). Usuń "OnClick" w HTML –
Po prostu próbowałem dodać "Hanldes" po tym, jak zobaczyłem błąd kompilacji. Dostaję ten sam błąd kompilacji ze słowem kluczowym Handler lub bez niego. –
Powiedziałem, że należy usunąć 'OnClick' w kodzie HTML, a nie' Uchwyty'. –