ASP.net web服务器控件
我有一个关于连接web服务器控件的问题。在我看到的许多示例中,事件处理程序是用私有访问修饰符声明的。我尝试这样做,如图所示:ASP.net web服务器控件,asp.net,controls,Asp.net,Controls,我有一个关于连接web服务器控件的问题。在我看到的许多示例中,事件处理程序是用私有访问修饰符声明的。我尝试这样做,如图所示: <asp:Label runat="server" ID="lblMessage" Font-Names="Verdana" Text="Hello" /> <br /> <asp:Button runat="server" ID="btnSubmit" text="click me!" onClick="bt
<asp:Label runat="server" ID="lblMessage" Font-Names="Verdana" Text="Hello" />
<br />
<asp:Button runat="server" ID="btnSubmit" text="click me!" onClick="btnSubmit_Click" />
但是,除非我将访问权限更改为protected,否则编译器无法找到click处理程序
按钮事件处理程序是否应该是私有的,如果是,为什么它在我的实例中不起作用
另外,除了使用onClick属性外,还有其他方法可以将事件处理程序连接到在.aspx文件中声明创建的控件吗
提前感谢,,
Yong这里可能令人困惑的是,许多人都是以视觉方式设计他们的web表单。当他们想要将单击处理程序连接到按钮服务器控件时,通常会双击该按钮或在Visual Studio中选择该按钮,然后按F4键转到其属性并在该窗口中设置其事件。这两种方法中的任何一种都具有以下效果:
<script language="C#" runat="server">
public void btnSubmit_Click(object sender, EventArgs e)
{
..
}
</script>
public void btnSubmit\u单击(对象发送者,事件参数e)
{
..
}
代码隐藏类的私有方法/属性在ASPX页面上是不可见的。这里可能令人困惑的是,许多人以可视化方式设计他们的web表单。当他们想要将单击处理程序连接到按钮服务器控件时,通常会双击该按钮或在Visual Studio中选择该按钮,然后按F4键转到其属性并在该窗口中设置其事件。这两种方法中的任何一种都具有以下效果:
<script language="C#" runat="server">
public void btnSubmit_Click(object sender, EventArgs e)
{
..
}
</script>
public void btnSubmit\u单击(对象发送者,事件参数e)
{
..
}
代码隐藏类的私有方法/属性对ASPX页不可见。事件处理程序需要受到
保护。原因是ASP.NET实际上生成了一个新类,该类继承自您在codebehind中定义的类,而不是使用该类本身
或者,您可以写:
btnSubmit.Click += new EventHandler(btnSubmit_Click);
在页面加载处理程序中,但我不推荐它。在VB.NET中,我相信您也可以使用句柄
关键字,但它在C#中不可用。事件处理程序需要保护。原因是ASP.NET实际上生成了一个新类,该类继承自您在codebehind中定义的类,而不是使用该类本身
或者,您可以写:
btnSubmit.Click += new EventHandler(btnSubmit_Click);
在页面加载处理程序中,但我不推荐它。在VB.NET中,我相信您也可以使用句柄
关键字,但它在C#中不可用。谢谢David,我想这突出了visual studio自动化这么多编码过程的能力的一个缺点,它掩盖了实际上正在发生的事情,并且占用了很多时间,您失去了更深层次的理解。很好的解释。私有处理程序行为只适用于Visual Studio 2003、2005+将其写入ASPX文件并创建受保护的AFAIK方法。谢谢David,我想这突出了Visual Studio自动化这么多编码过程的能力的一个缺点,它掩盖了事实上正在发生的事情,很多时候,你们会失去更深层次的理解。很好的解释。私有处理程序行为仅适用于Visual Studio 2003、2005+将其写入ASPX文件并创建受保护的方法AFAIK。