如何将类方法注册为控件事件处理程序



请原谅我对代表的无知。我正在尝试在 asp.net WinForms 页面中注册 GridView 事件的处理程序:

Class myClass
{
    void grid_rowDataBound(object sender, GridViewCommandEventArgs e)
    { blah blah }
}
myClass myClassInstance = new myClass(); //done in Page_Load
<asp:GridView ID="server_grid" runat="server" OnRowDataBound="myClassInstance.grid_RowDataBound">
    yadda yadda
</asp:GridView>

我收到运行时错误"委托给实例方法不能有空的'this'"。此时我唯一的解决方案是定义一个新的页面函数,该函数只需调用我的类方法,并在 OnRowDataBound 中注册该页面函数。但是,有没有一种直接的方法可以在没有间接寻址的情况下为 GridView 事件注册类方法吗?还是所有页面控制事件都需要在页面类中定义的处理程序?

您可以使用以下内容,但这只是定义新函数的简短方法,就像您已经建议的那样。

server_grid.RowDataBound += (s,e) => myClassInstance.grid_RowDataBound(s, e);

最新更新