none
GridViewのフィルタ集計 RRS feed

  • 質問

  • GridViewに下記のように設定しています。

    項目名 値1 値2
    A 10 20
    B 5 1
    A 10 20

    この時に、AとBそれぞれで縦計を計算したいのですが

    vb.netでGridViewの値をフィルタ集計することは可能でしょうか?

    一つのやり方としてGridViewの値を行ごとにループして

    項目名ごとに集計することでできると思いますが

    もっと簡単に関数とかでできればありがたいです。

    ご存知の方がいらっしゃいましたらご教授をお願いいたします。


    • 編集済み kaz0923 2013年11月30日 3:18
    2013年11月30日 3:17

回答

  • ASP.NET Web Forms アプリの話と理解します。(ASP.NET フォーラムで質問していただけていたらすぐ分かったのですが・・・)

    項目ごとに合計を計算していくのは、GridView.RowDataBound イベントのハンドラで行うのが一番簡単だと思います。

    項目が A と B の二つだけなのかデータベースの中身によって動的に変わるのか、合計結果をどこにどのように表示するのか等が分かりませんが、いずれにしても以下のページの応用でできると思います。

    GridView, ListView に合計表示
    http://surferonwww.info/BlogEngine/post/2010/11/07/Show-sum-in-GridView-or-ListView.aspx

    上記のページのサンプルコードにありますように、行がデータ行のとき DataRowView を取得し、それからその行の「項目名」「値1」「値2」が取得できるので、「項目名」によって分けて合計していくことは可能なはずです。


    紹介したページのコードは C# ですが、C# が読めなければ、以下のサイトなどで変換サービスも利用できますので使ってみてください。

    Convert C# to VB.NET
    http://www.developerfusion.com/tools/convert/csharp-to-vb/

    100% 完璧には行かないかもしれませんが、人間が読んで理解できるレベルには十分なはずです。

    • 回答としてマーク kaz0923 2013年11月30日 6:10
    2013年11月30日 6:00

すべての返信

  • GridView とは何でしょう?

    System.Web.UI.WebControls.GridView ですか、それとも System.Windows.Controls.GridView ですか?

    ひょっとして DataGridView の間違いとか?

    それから、ご自分の環境(OS, .NET, VS のバージョンなど。Web アプリなら IIS のバージョンと使っているブラウザなど)ぐらいは最初に質問の際書けませんか?

    2013年11月30日 4:32
  • 失礼いたしました。

    初心者で理解できていないのですが

    System.Web.UI.WebControls.GridView になると思います。

    環境は

    OS:Win2008R2

    .Net:4.0

    Vs:2010

    IIS:7.5

    です。

    2013年11月30日 5:28
  • ASP.NET Web Forms アプリの話と理解します。(ASP.NET フォーラムで質問していただけていたらすぐ分かったのですが・・・)

    項目ごとに合計を計算していくのは、GridView.RowDataBound イベントのハンドラで行うのが一番簡単だと思います。

    項目が A と B の二つだけなのかデータベースの中身によって動的に変わるのか、合計結果をどこにどのように表示するのか等が分かりませんが、いずれにしても以下のページの応用でできると思います。

    GridView, ListView に合計表示
    http://surferonwww.info/BlogEngine/post/2010/11/07/Show-sum-in-GridView-or-ListView.aspx

    上記のページのサンプルコードにありますように、行がデータ行のとき DataRowView を取得し、それからその行の「項目名」「値1」「値2」が取得できるので、「項目名」によって分けて合計していくことは可能なはずです。


    紹介したページのコードは C# ですが、C# が読めなければ、以下のサイトなどで変換サービスも利用できますので使ってみてください。

    Convert C# to VB.NET
    http://www.developerfusion.com/tools/convert/csharp-to-vb/

    100% 完璧には行かないかもしれませんが、人間が読んで理解できるレベルには十分なはずです。

    • 回答としてマーク kaz0923 2013年11月30日 6:10
    2013年11月30日 6:00
  • 質問場所が不適切で申し訳ございません。

    わかりづらいなかでも回答をいただきありがとうございます。

    紹介いただいたページを拝見させていただきます。

    2013年11月30日 6:10
  • 解決したのでしょうか?

    でなければ「回答としてマーク」はつけないで、質問を続けることをお勧めします。マークをつけると注目されなくなって、今後不明な点が出てきて質問しても、回答が得られにくくなりますので。

    以下、追加情報です

    小計行を挿入するような方法もあります。

    Group Total, Grand Total in Grid View
    http://www.dotnettwitter.com/2011/02/group-total-grand-total-in-grid-view.html#

    Nested GridView Grouping and Displaying SubTotals and GrandTotals
    http://highoncoding.com/Articles/230_Nested_GridView_Grouping_and_Displaying_SubTotals_and_GrandTotals.aspx

    「項目名」の数が多くてかつデータベースの内容によって動的に変わるような場合はこちらの方がいいかもしれません。

    他にも、GridView Subtotal 等をキーワードにググると参考になるページが見つかると思います。


    • 編集済み SurferOnWww 2013年11月30日 6:32 誤字訂正
    2013年11月30日 6:31