1

独自の組み込みページングを持つデータ ストアを使用している Web アプリケーションがあります。PagedResult クラスは、総ページ数を教えてくれます。私がやりたいこと (ASP.NET GridView をバインドした後) は、次のようにします。

MyGridView.PageCount = thePageCount;

そして、GridView が魔法のようにページネーション リンクを構築するようにします。

問題は、「PageCount」が読み取り専用プロパティであることです...では、どうすればこれを簡単に行うことができますか?

4

4 に答える 4

2

組み込みのページングを使用するために、GridView はデータ ソースと対話します。GridView には、PageSize の設定可能なプロパティがあります。

ObjectDataSource を使用する場合は、SelectMethod と SelectCountMethod の両方を構成します。ページ数ではなくレコード数を返すように PagedResult クラスを変更するか、ページ数をレコード数 (PageCount * PageSize) に変換するメソッドで PagedResult 呼び出しをラップすることができます。

PagedResult クラスが Web アプリをサポートするためだけに存在する場合は、通常のページ データ ソースのように動作するように変更することを検討する必要があります。

于 2008-11-12T23:37:00.953 に答える
0

GridViewを拡張する独自のクラスを作成し、PageCount getterメソッドをオーバーライドして、PagedResultクラスから値を返すことができます。

于 2008-11-12T23:09:36.717 に答える
0
       Dim myCount as Integer = 1 'this sets the page count to 1 
       While (oreader.Read())
            myCount += 1 'increments once for everytime a item is counted
            'this sets an array for the items to go into
            idFname = oreader.GetOrdinal("workCenter")
            'this retrieves the values at those indices
            fName = oreader.GetValue(idFname)
            BulletedList1.Items.Add(fName)
        End While

    Catch ex As Exception
        BulletedList1.Items.Add("No Workcenters Found")
    Finally
        oreader.Close()
        oconn.Close()
    End Try
End If
Me.insertItemForm.PagerSettings.PageButtonCount = myCount 'sets the page count to number of items in gridview or formview etc.
于 2009-11-12T20:12:06.010 に答える
0

ObjectDataSource コントロールを使用して GridView にバインドし、SelectCoutnMethod プロパティのハンドラーを設定します。ObjectDataSource コントロールとやり取りするデータを取得するクラスの小さなラッパー オブジェクトを作成する必要がある場合があります。

あなたを助けるためのいくつかのリンク:

ObjectDataSource Web サーバー コントロールの概要
ObjectDataSource クラス

于 2008-11-12T23:38:45.707 に答える