0

代表者の無知を許してください。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>

「インスタンス メソッドへのデリゲートは null 'this' を持つことはできません」という実行時エラーが発生します。この時点での唯一の解決策は、クラス メソッドを呼び出すだけの新しいページ関数を定義し、そのページ関数を OnRowDataBound に登録することです。しかし、間接指定なしで GridView イベントのクラス メソッドを直接登録する方法はありませんか? または、すべてのページ コントロール イベントには、ページ クラスで定義されたハンドラーが必要ですか?

4

1 に答える 1

1

You could use the following, but then this is just a short way of defining a new function like you already suggested.

server_grid.RowDataBound += (s,e) => myClassInstance.grid_RowDataBound(s, e);
于 2012-11-20T07:43:32.197 に答える