4

GroupField プロパティを使用して SPGridView でアイテムをグループ化すると、グループ化はうまく機能しますが、標準の SharePoint リストのように合計行数が表示されません。通常、SharePoint は括弧内のグループの横にカウントを表示します (つまり、グループ 1 (5))。この機能を有効にする方法はありますか。

4

5 に答える 5

0

DisplayGroupFieldNameプロパティをに設定してみましたTrueか?

SPGridViewクラスのドキュメント

于 2009-02-28T05:23:34.767 に答える
0

JavaScript を使用したくない場合は、テーブルを反復処理して、各グループの行を数えることができます。

欠点は、おそらくすべての行を数えてから、戻って各行のグループ名を更新する必要があることです。

例えば:

ID  Value   Group
1   One     GroupA
2   Two     GroupA
3   Three   GroupB
4   Four    GroupB
5   Five    GroupB

グループ A に2人 グループ B に
3 人

ID  Value   Group
1   One     GroupA (2)
2   Two     GroupA (2)
3   Three   GroupB (3)
4   Four    GroupB (3)
5   Five    GroupB (3)
于 2009-04-30T21:46:27.860 に答える
0

ジャバスクリプトが動く!ナットのアドバイスが役に立ちました!

以下の jquery の例を参照してください。

$(".ms-gb td:contains('" + groupName + "')")
    .append("<div class='stat'>text</div>")
于 2009-03-27T22:56:54.197 に答える
0

コードをざっと見てみると、SPGridview をオーバーライドしても、これをオーバーライドするための簡単な「フック」がないようです。

これを行うために Javascript を作成できるかもしれませんが、面白いとは言えません。

于 2009-03-02T02:25:10.560 に答える
-1

この質問は古いことは知っていますが、とにかく:

var rows = document.getElementById("your_table").getElementsByTagName("TR");
for (var i = 0; i < rows.length; i++) {
    if (rows[i].className == 'ms-gb') {
        var count = 0;
        var el = rows[i].nextSibling;
        while (el) {
            if (el.className != 'ms-gb')
                count++;
            else
                break;
            el = el.nextSibling;
        }
        rows[i].children[0].innerHTML += " <span dir='ltr'>(" + count + ")</span>";
       }
    }

とにかくページ全体に適用する場合は、drop.getElementById("your_table") 部分を削除できます。それ以外の場合は、その ID を持つコントロールに gridview を配置します。

于 2011-02-17T11:01:49.380 に答える