Vivek.anand34 Ответов: 1

Как отобразить сумму строк в нижнем колонтитуле webgrid


Уважаемый друг,

Мне нужно отобразить нижний колонтитул webgrid с суммой строк. я пробовал, но он отображает "NaN", и еще одна проблема заключается в том, что когда я добавляю строку, то она добавляет строки после нижнего колонтитула.







по отношению,
Вивек. Р

Что я уже пробовал:

Язык JavaScript:

< script type= "text/javascript">
$(документ).готово(функция () {
var total = 0;
$(".Итого"). каждый (функция () {
total = total + parseFloat ($(this) [0]. innerHTML.toLocaleString());
});
$('tbody'). append('Весь'+total.toFixed(2) + '');
});
< / script>

1 Ответов

Рейтинг:
5

Richard Deeming

Во-первых, быстрый комментарий: нет никакого смысла использовать $(this)[0], так как это просто возвращается this.

Во-вторых, toLocaleString метод определяется по типу данных number, но здесь вы пытаетесь вызвать его по строке, возвращаемой из innerHTML собственность. Я подозреваю, что это просто опечатка в вашем вопросе, иначе у вас была бы другая ошибка.

В-третьих, поскольку вы пытаетесь суммировать числа, вы не должны вызывать toLocaleString метод внутри цикла. Вы хотите добавить числа к вашему итогу, а не форматированное строковое представление чисел.

Наконец, вы не можете просто добавить текстовое значение к <tbody> элемент. Вам нужно добавить a <tr> содержащий <td>; и вы, вероятно, должны были бы добавить к <tfoot> раздел.

Попробуйте что-нибудь вроде этого:

$(document).ready(function(){
    var total = 0;
    $(".Total").each(function(){
        var text = this.innerHTML;
        var value = parseFloat(text);
        if (!isNaN(value)) { total += value; }
        
        console.log(this, text, value);
    });
    
    var td = $("<td>").text("Total " + total.toFixed(2));
    var tr = $("<tr>").append(td);
    var tfoot = $("<tfoot>").append(tr);
    $("table").append(tfoot);
});

Я добавил в console.log постройте так, чтобы вы могли видеть список значений в консоли вашего браузера, если он все еще не работает.


Vivek.anand34

Спасибо, что ее исполнили...
когда приходит пагинация, она занимает только первую страницу..

Richard Deeming

Потому что вы берете сумму значений на текущей странице.

Если вам нужна сумма всех значений, то вам нужно будет сделать это на сервере, где у вас есть все доступные значения.

Vivek.anand34

Добавленная строка не может добавить в общую сумму.. как ее решить..

Richard Deeming

Код, который у вас есть на данный момент, вычисляет общую сумму один раз, когда страница загружается. Он не пересчитывает общую сумму, если вы запускаете какой-то скрипт для добавления новой строки.

Когда вы добавите новую строку,вам нужно будет пересчитать общую сумму.