SPGridView 中的组总计

发布于 2024-07-14 20:26:35 字数 137 浏览 7 评论 0 原文

当我使用 GroupField 属性对 SPGridView 中的项目进行分组时,分组效果很好,但总行数不会像标准 SharePoint 列表中那样显示。 通常,SharePoint 会在括号中的组旁边显示计数(即组 1 (5))。 有没有办法启用此功能。

When I group items in a SPGridView using the GroupField property the grouping works great but the total row count does not show up like in a standard SharePoint list. Usually SharePoint will display the count next to the group in parenthesis (i.e. Group 1 (5)). Is there a way to enable this functionality.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

奶茶白久 2024-07-21 20:26:35

您是否尝试过将 DisplayGroupFieldName 属性设置为 True

SPGridView 类文档

have you tried setting the DisplayGroupFieldName property to True?

SPGridView class documentation

悍妇囚夫 2024-07-21 20:26:35

我快速浏览了代码,甚至覆盖 SPGridview 似乎也没有一个简单的“钩子”来覆盖它。

您也许可以创建 Javascript 来执行此操作,但这一点也不有趣。

I had a quick look at the code and even overriding the SPGridview does not seem to have an easy "hook" to override for this.

You may be able to create Javascript to do this, but it would be far from entertaining.

红玫瑰 2024-07-21 20:26:35

JavaScript 可以工作了! 纳特的建议帮助了我!

请参阅下面的 jquery 示例:

$(".ms-gb td:contains('" + groupName + "')")
    .append("<div class='stat'>text</div>")

Javascript works! Nat advice helped me!

See jquery example below:

$(".ms-gb td:contains('" + groupName + "')")
    .append("<div class='stat'>text</div>")
一袭水袖舞倾城 2024-07-21 20:26:35

如果您不想使用 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)

If you don't want to use javascript, you could iterate through the table and count the rows in each group.

The downside is that you would probably need to count all of the rows and then go back and update the group name in each row.

For example:

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

2 in GroupA
3 in GroupB

ID  Value   Group
1   One     GroupA (2)
2   Two     GroupA (2)
3   Three   GroupB (3)
4   Four    GroupB (3)
5   Five    GroupB (3)
零度° 2024-07-21 20:26:35

我知道这个问题很老了,但无论如何:

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") 部分,否则将 gridview 放在具有该 ID 的控件中。

I know this question is old, but anyway:

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>";
       }
    }

You can drop.getElementById("your_table") part if you want to apply it to the whole page anyway, otherwise put the gridview in a control with that ID.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文