Вопрос

Хорошо, поэтому у нас есть какой-то унаследованный код, который использует сеты kendo ui.

После сортировки сетки мы должны иметь возможность прочитать элемент данных данных, который соответствует каждой строке, итерацией через список jQuery Selection 'Tr', а затем выберите элемент DataSource на основе индекса самой строки.

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

    $('td:nth-child(' + colIndex + ')', $('tbody', grid.element).eq(0)).each(
        function (iIndex) {
            var td = $(this);
            var tr = td.parent();
            var data = grid.dataSource.data()[iIndex];

            if (data.Status.toLowerCase() !== 'c') {
                totalBalanceDue = (totalBalanceDue - data.Payment) > 0 ? (totalBalanceDue - data.Payment) : 0;
            };
            td.html('$' + totalBalanceDue.formatMoney(2, '.', ','));
        }
    ); 
.

Это было полезно?

Решение 2

Похоже, я должен ответить на этот вопрос сам.

Я нашел, пропитав документацию и в Интернете, что то, как я приближаюсь к этому, не обязательно точен.Вместо того, чтобы пытаться отсортировать массив, чтобы соответствовать строкам GRIDView, я могу использовать атрибут UID Data of Row, чтобы получить соответствующий PatteriTem из массива DataSource.data (), используя функцию DataSource.getbyuid (),

Это работает так же, как мне нужно.

       $('td:nth-child(' + colIndex + ')', $('tbody', grid.element).eq(0)).each(
            function (iIndex) {
                var td = $(this);
                var tr = td.parent();

                //gets the corresponding dataitem for the selected row.  
                var data = grid.dataSource.getByUid(tr.data("uid"));
                if (data.Status.toLowerCase() !== 'c') {
                    totalBalanceDue = (totalBalanceDue - data.Payment) > 0 ? (totalBalanceDue - data.Payment) : 0;
                };
                td.html('$' + totalBalanceDue.formatMoney(2, '.', ','));
            }
        );
.

Другие советы

Это все не нужно.Все, что вам нужно использовать, это Просмотр метода ()источника данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top