为什么私有事件处理程序在ASP.NET中不起作用
这是问题: 我有一个带有2个按钮的简单ASP.NET表单. 其中一个是通过拖动工具中的按钮创建的,另一个是我直接在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是使用工具创建的,具有以下事件处理程序: Private Sub Button2_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button2.Click Dim s As String = "" End Sub 这个“私有事件处理程序运行没有任何问题. 但是对于在HTML下创建的按钮,我们有以下事件处理程序: Private Sub ABC(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click Dim a As Integer = 0 End Sub 对于这个我得到以下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'. 如果我将事件处理程序范围从Private更改为protected,则这将起作用.问题是私有为一个事件处理程序而不是另一个事件处理程序. 解决方法基本上,aspx页面实现为两个类.其中一个类包含代码背后的代码(.aspx.vb)(并且,根据您使用的ASP.Net的版本/型号,还有一些设计器生成的代码(.aspx.designer.vb)).第一个类是在首次请求页面时(或者网站是预编译的)创建的,并且包含来自.aspx页面的任何内联代码和ASP.Net生成的其他代码,并且包括例如.使用runat =“server”声明的任何控件的代码. 第二类继承自第一类. 因此,如果第一个类负责连接其事件处理程序,它使用 Private Sub ABC(...) Handles Button1.Click Button1属于这个类,因为它是由设计器生成的代码放在那里的.这个类的所有内容都是本地的,因此该方法可以是Private. 如果第二个类负责连接事件处理程序,它通过使用服务器控件上的属性来完成它,例如: <asp:Button OnClick="ABC" Runat="server" 现在,除非ABC是在.aspx文件中内联声明的方法,否则它必须来自第一个类(或第一个类从中继承的任何类) 我们现在遇到第二类中的代码想要引用第一类中的代码的情况.因此,.NET的规则说它试图访问的成员不能是私有的. 正如你在问题中所做的那样,你不应该拥有的是两个班级负责连接(相同)事件处理程序. *它不必使用Handles子句 – 它也可以在内部使用 (编辑:鲜蔬坊站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.NET MVC 2预览2:区域重复控制器问题
- asp.net – 如何查看Chrome开发者工具中发布到表单的数据大
- asp.net下使用jquery 的ajax+WebService+json 实现无刷新取
- asp.net-ajax – ASP.Net AJAX UpdatePanel无法触发Selecte
- asp.net-mvc-3 – MVC3 Html.ActionLink Post
- asp.net-mvc-3 – 是否可能获得一个ASP.NET MVC 3项目工作在
- asp.net-mvc – TempData在第二个请求后不会被破坏
- ASP.NET Core使用SkiaSharp实现验证码的示例代码
- .NET 3.5 / VS 2008上的ASP.NET Web Services的自定义HTTP基
- asp.net-mvc – ie9:调试时出现恼人的弹出:“错误:’__f
- ASP.NET web.config中数据库连接字符串connectio
- asp.net-mvc – 如何在ASP.NET MVC部分视图中使用
- 如何在asp.net用户控件中使用jQuery ajax?
- asp.net – 我怎么知道我的应用程序中是否需要“
- ASP.NET微信公众号用于给指定OpenId用户发送红包
- asp.net-mvc – 在部署MVC 2 Web应用程序时要绝对
- ASP.NET -- WebForm -- 页面生命周期事件
- asp.net-mvc-3 – MVC 3 $.ajax – 响应似乎是从
- asp.net – __doPostBack在DotNetNuke网站上未定
- 有什么好的参考或工具可用于将ASP转换为ASP.NET?