将远程方法添加到GridView事件

时间:2017-11-09 17:14:07

标签: c# asp.net gridview event-handling reusability

我有一个aspx Web应用程序,它有多个GridView,具有类似的方法。我的想法是创建一个具有可重用方法的“助手”类。我的问题是利用这些远程类方法的最佳方法是什么?

前端不接受这样的class.method:

<asp:GridView runat="server" ID="myGridView" ... OnSorting="myClass.reusableMethod"

当我在Page_Load上附加处理程序时,Visual Studio没有给我任何编译错误,但是我确实收到运行时错误,说GridView试图触发事件并且它不存在。

if (!IsPostBack)
{
    myGridView.Sorting += myClass.reusableMethod;
}

我相信最后的方法会起作用,但似乎适得其反。像往常一样在页面后端创建方法,但是只有一行是对远程方法的调用

public void myGridView_Sorting(object sender, GridViewSortEventArgs e)
{
    myClass.reusableMethod();
}

1 个答案:

答案 0 :(得分:1)

可以做到。首先从GridView中删除OnSorting事件。

<asp:GridView ID="myGridView" runat="server" AllowSorting="true">

然后只绑定IsPostBack检查之外的方法。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        //do not bind the event here
    }

    //but here
    myGridView.Sorting += myClass.reusableMethod;
}

现在您可以使用方法

public static void reusableMethod(object sender, GridViewSortEventArgs e)
{
    GridView gv = sender as GridView;
}