- PR -

GridViewのPagerTemplateに総レコード数を表示する方法

1
投稿者投稿内容
n.taotao
会議室デビュー日: 2006/04/24
投稿数: 3
投稿日時: 2006-05-15 12:02
いつも参考にさせていただいてます。
現在 VS2005 VBにて開発をしています。
GridViewにPagerTemplateを追加してページ操作部分をカスタマイズしています。

--ヘッダーのイメージ
 <<最初のページ<前のページ 全○件 2/5 次のページ>最後のページ>>

となる予定なのですが、全○件のところが、PageSettings.PageSizeのサイズとなり、
GridViewの全レコード数になりません。 
超初歩的な質問で申し訳ないのですが、ご指導の方宜しくお願いします。

--ヘッダーのソースです。
<PagerTemplate >
 <asp:LinkButton ID="LinkButton1" runat="server" CommandName ="Page"
CommandArgument="First" >&lt;&lt;最初のページ /asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CommandName ="Page"
CommandArgument="Prev" >&lt;前のページ</asp:LinkButton>
 全<%=GridView1.Rows.Count%>件 <%=gridview1.PageIndex + 1 %> / <%=gridview1.PageCount %> 
<asp:LinkButton ID="LinkButton3" runat="server" CommandName ="Page"
CommandArgument="Next" >次のページ&gt;</asp:LinkButton>
<asp:LinkButton ID="LinkButton4" runat="server" CommandName ="Page"
CommandArgument="Last" >最後のページ&gt;&gt;</asp:LinkButton>
</PagerTemplate>
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-05-15 12:58
GridViewのRowsプロパティには現在表示している分のデータが入っていると思うので、
PageSizeの値になるのが当然のように思います。
別途対象となるデータの数を取り出してきてここに表示するしかないんじゃないでしょうか。
n.taotao
会議室デビュー日: 2006/04/24
投稿数: 3
投稿日時: 2006-05-15 13:25
どっとねっとふぁん、ありがとうございます。

やはり、別途全体件数を取得しといて表示するしかないですか。ASP.NET初心者ですので、できれば間単に(プロパティ変更くらいで)表示する方法がないものかとおもいまして・・・

できるだけ簡単な方法はないでしょうか?
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2006-05-16 06:04
引用:

となる予定なのですが、全○件のところが、PageSettings.PageSizeのサイズとなり、
GridViewの全レコード数になりません。 


DataSourceコントロールを利用してGridViewにバインドしているのでしたら
以下のコードを追加すれば可能です。もっとスマートな方法があるような気がするのですが・・・

DataSourceコントロールを利用しないでADO.NET 2.0で直接DataTableを生成
するとか・・・

コード:
Public TotalRecs As Integer
Protected Sub SqlDataSource1_Selected(ByVal sender As Object, _
  ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs)
  TotalRecs = e.AffectedRows
End Sub

<PagerTemplate>
  <asp:LinkButton ID="LinkButton1" runat="server" 
    CommandName="Page" CommandArgument="First">first</asp:LinkButton>
  <asp:LinkButton ID="LinkButton2" runat="server" 
    CommandName="Page" CommandArgument="Prev">previous</asp:LinkButton>
  Totals (<%=TotalRecs%>)
  <%= GridView1.PageIndex+1%> / <%=GridView1.PageCount%>
  <asp:LinkButton ID="LinkButton3" runat="server" 
    CommandName="Page" CommandArgument="Next">next</asp:LinkButton>
  <asp:LinkButton ID="LinkButton4" runat="server" 
    CommandName="Page" CommandArgument="Last">last</asp:LinkButton>
</PagerTemplate>


_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
n.taotao
会議室デビュー日: 2006/04/24
投稿数: 3
投稿日時: 2006-05-16 09:23
Accessさん、ありがとうございます。
たいへん参考になりました。
1

スキルアップ/キャリアアップ(JOB@IT)