3

次のことをしようとすると:

lblTotal.text  = gwGrid.rows.count()

私は常に 50 を取得します。これは私のページのサイズです。その 1 ページに表示されているレコードだけでなく、返されたすべてのレコードの数を取得するにはどうすればよいですか?

データソースで Selected イベントも試しました。

Protected Sub ObjectDataSource1_Selected(ByVal sender As Object, ByVal e As ObjectDataSourceStatusEventArgs)

    If e.Exception Is Nothing AndAlso e.ReturnValue IsNot Nothing Then
        Dim dt As DataTable = TryCast(e.ReturnValue, DataTable)
        Dim totalRecordCount As Integer = dt.Rows.Count
    End If

End Sub

しかし、私は次のエラーが発生します:

オブジェクト参照がオブジェクト インスタンスに設定されていません。この行: 行 85: Dim totalRecordCount As Integer = dt.Rows.Count

更新: 私はそれを理解します:

 Protected Sub ObjectDataSource1_Selected(ByVal sender As Object, ByVal e As ObjectDataSourceStatusEventArgs)
        If e.Exception Is Nothing Then
            Dim dt As DataSet = DirectCast(e.ReturnValue, DataSet)
            If dt IsNot Nothing Then
                lblTotal.Text = dt.Tables(0).Rows.Count.ToString()
            Else
                lblTotal.Text = "0"
            End If
        End If
    End Sub
4

2 に答える 2

2

SqlDataSource を使用してこの質問に対する回答を探している場合は、同じイベントを使用しますが、カウントには e.AffectedRows のみを使用してください。

Protected Sub WorkerData_Selected(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Handles WorkerData.Selected

    If e.Exception Is Nothing Then

        Dim rows As Integer = e.AffectedRows

        'AddMessage(rows.ToString & " Workers selected", UpdateMessage)

    End If

End Sub

それは私にとって完璧に機能しました。

于 2012-05-24T17:42:19.503 に答える
0
Protected Sub ObjectDataSource1_Selected(ByVal sender As Object, ByVal e As ObjectDataSourceStatusEventArgs)
        If e.Exception Is Nothing Then
            Dim dt As DataSet = DirectCast(e.ReturnValue, DataSet)
            If dt IsNot Nothing Then
                lblTotal.Text = dt.Tables(0).Rows.Count.ToString()
            Else
                lblTotal.Text = "0"
            End If
        End If
    End Sub
于 2012-02-01T14:46:53.540 に答える