Đây là vấn đề:Tại sao trình xử lý sự kiện riêng tư không hoạt động trong ASP.NET
Tôi có biểu mẫu ASP.NET đơn giản với 2 nút.
Một trong số đó được tạo ra bằng cách kéo các nút từ các công cụ và chọn mà chúng tôi tạo trực tiếp trong 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 được tạo bằng công cụ và có tổ chức sự kiện Handler sau:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim s As String = ""
End Sub
"Trình xử lý sự kiện riêng tư này chạy mà không có bất kỳ vấn đề nào.
Tuy nhiên đối với nút được tạo dưới dạng HTML, chúng tôi có trình xử lý sự kiện sau:
Private Sub ABC(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As Integer = 0
End Sub
Đối với một này tôi nhận được lỗi hãy biên dịch sau:
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'.
Nếu tôi thay đổi phạm vi xử lý sự kiện từ cá nhân để bảo vệ này sẽ làm việc. Câu hỏi là tại sao riêng tư làm việc cho một trình xử lý sự kiện nhưng không phải là một trình xử lý sự kiện khác.
Có 'OnClick' ** và ** Handles' có nghĩa là bạn đang cố gắng kết nối hai lần - một lần từ mã phía sau và một lần từ HTML. Nếu bạn chuyển sang 'Được bảo vệ', bạn sẽ thấy rằng trình xử lý sự kiện được gọi hai lần (vì bạn hiện có nó). Loại bỏ các 'OnClick' trong HTML –
Tôi chỉ cố gắng thêm" Hanldes "sau khi tôi thấy lỗi biên dịch. Tôi nhận được cùng một lỗi biên dịch có hoặc không có từ khóa Trình xử lý. –
Tôi đã xóa 'OnClick' trong HTML, không phải' Handles'. –