以编程方式排序GridView

时间:2015-10-14 19:01:37

标签: asp.net .net vb.net gridview

我在ASP.NET中使用GridView并以编程方式构建它。但是,当我去排序时,我收到一个错误,因为事件没有得到正确处理。

我在很长一段时间内都没有使用过ASP.NET GridViews,并且在这个问题上非常生疏。

这是我到目前为止的代码:

Public Sub GetData()
    Using sqlConn As New SqlConnection(_connstr)
        Dim sqlcmd As New SqlCommand()
        sqlcmd.Connection = sqlConn
        sqlcmd.CommandType = CommandType.StoredProcedure
        sqlcmd.CommandText = "dbo.uspGetEmailAudit"
        sqlcmd.Parameters.Add(requestIdParam)
        Using sqlda As New SqlDataAdapter(sqlcmd)
            sqlda.Fill(_dt)
        End Using
    End Using

    BindData(_dt)
End Sub

Private Sub BindData(dt As DataTable)
    GridView1.DataSource = _dt
    GridView1.AllowSorting = True
    GridView1.AllowPaging = True
    GridView1.PageSize = 15
    GridView1.DataBind()
End Sub

Protected Sub sorting(sender As Object, e As GridViewSortEventArgs)
    ViewState("sortexp") = e.SortExpression
    GridView1.DataSource = GetData()
    GridView1.DataBind()
End Sub

我得到的错误是:

  

GridView' GridView1'已解决的事件已排除但尚未处理。

2 个答案:

答案 0 :(得分:0)

在GridView标记中,告诉它使用您的子标题:

<asp:GridView runat="server" OnSorting="sorting" id="GridView1" />

你必须把它连接起来,它不会为你做。

如果你在代码中创建GridView,你需要做相当于这个C#代码的VB.NET(对不起,我不是一个VB人)

GridView1.OnSorting += sorted;

答案 1 :(得分:0)

在Form_Load或其他地方,您需要连接OnSorting事件。

示例如下:

https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.sorting(v=vs.110).aspx