从服务器端附加事件与在 aspx 中写入事件名称之间的区别

本文关键字:入事件 之间 区别 aspx 服务器端 事件 | 更新日期: 2023-09-27 18:37:02

很多时候我遇到这种情况,但不知道确切的原因。这有什么区别

 grdQuotes.Sorting+=new GridViewSortEventHandler(grdQuotes_Sorting);

而这个(直接在ASPX中声明)

OnSorting="grdQuotes_Sorting"

当我使用第一种方法附加事件时,提及功能的访问级别是可选的,但是如果我使用第二个选项并且没有提到任何带有功能的访问级别,则得到"功能由于其保护级别错误消息而无法访问"

从服务器端附加事件与在 aspx 中写入事件名称之间的区别

据我所知,在 aspx 代码中绑定事件和在代码隐藏中执行事件之间没有区别。然而,正如 Thangadurai 所说 - 当你在代码后面处理事件时,你可以将多个处理程序附加到一个事件。

当涉及到保护级别时 - aspx 代码无法访问私有方法背后的代码(如果在方法之前没有提及任何访问级别,则它是私有的)。下面是一个示例:

代码隐藏:

public void Test()
{
    lblTest.Text = "clicked code behind";
}

Aspx:

<script runat="server">
    void btnTest_Click(object sender, EventArgs e)
    {
        Test();
    }
</script>

如果将"测试方法访问级别"更改为"专用",则btnTest_Click方法将无法看到它。只有公共、受保护和受保护的内部方法才能调用 aspx 代码。

这是因为.aspx页继承自代码隐藏类:

如果将代码隐藏类文件与.aspx页一起使用,则可以将 来自核心应用程序逻辑的表示代码(或 代码隐藏)。编译代码隐藏类文件,以便它可以 创建并用作对象。这允许访问其属性, 它的方法,它的和事件处理程序。为此,.aspx页面 必须指定从代码隐藏基类继承。为此, 对 @ Page 指令使用"继承"属性。.aspx页面 继承自代码隐藏类和代码隐藏类 继承自 Page 类。

http://support.microsoft.com/kb/312311