Итоги группы в SPGridView
Когда я группирую элементы в SPGridView, используя свойство GroupField, группировка работает отлично, но общее количество строк не отображается, как в стандартном списке SharePoint. Обычно SharePoint отображает счетчик рядом с группой в скобках (т. Е. Для группы 1 (5)). Есть ли способ включить эту функцию.
5 ответов
Javascript работает! Нац совет помог мне!
Смотрите пример jquery ниже:
$(".ms-gb td:contains('" + groupName + "')")
.append("<div class='stat'>text</div>")
Если вы не хотите использовать javascript, вы можете перебирать таблицу и подсчитывать строки в каждой группе.
Недостатком является то, что вам, вероятно, потребуется подсчитать все строки, а затем вернуться и обновить имя группы в каждой строке.
Например:
ID Value Group
1 One GroupA
2 Two GroupA
3 Three GroupB
4 Four GroupB
5 Five GroupB
2 в группе А
3 в группе B
ID Value Group
1 One GroupA (2)
2 Two GroupA (2)
3 Three GroupB (3)
4 Four GroupB (3)
5 Five GroupB (3)
Я быстро взглянул на код, и даже переопределение SPGridview, кажется, не имеет простого "крючка", который можно переопределить для этого.
Вы можете создать Javascript для этого, но это будет далеко не интересно.
Вы пытались установить DisplayGroupFieldName
собственность на True
?
Я знаю, что этот вопрос старый, но все равно:
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 в элемент управления с этим идентификатором.