Как добавить Rowspan в таблицы данных JQuery

Я использую таблицы данных Jquery для создания таблицы.
Мои требования приведены ниже:  введите описание изображения здесь

Это не статическая таблица, и мы отображаем ее с использованием данных json.
Здесь я, рендеринг строк динамически с помощью "aoColumns".
Есть ли способ использовать rowspan , чтобы можно было заполнить ячейки (1,2, David, Alex).
Поддерживает ли таблица данных этот вид таблицы?

10 голосов | спросил Shree 19 AM000000100000000831 2015, 10:07:08

2 ответа


0

Я попробовал плагин RowsGroup , но это достигается только путем захвата механизма сортировки DataTables. Если вы скажете ему сгруппировать данный столбец, то для вас это в основном будет применить сортировку к этому столбцу, которую нельзя отключить. Так что, если вы хотите отсортировать по другому столбцу, вы не можете. Это не сработало в моем приложении.

Вместо этого вот рабочая скрипка для рецепта, который позволяет вам достичь этого результата:

https://jsfiddle.net/bwDialogs/fscaos2n

Основная идея состоит в том, чтобы объединить все ваши многорядные данные в одну строку. Содержимое во 2-й, 3-й и т. Д. Строках хранится в виде скрытого тега шаблона <script> в первой строке.

Он работает с помощью функции drawCallback объекта DataTables, чтобы манипулировать DOM после его визуализации в DataTables, не путая DataTables с необходимостью попытки разбора rowspan содержимое ячейки.

Поскольку это изменяет DOM после того, как DataTables сделали свое дело, ваши многорядные разделы будут слипаться даже при разбивке на страницы, поиске и сортировке.

Приветствия.

ответил BrentW 5 Mayam18 2018, 01:23:55
0

добавьте приведенный ниже код и измените его в соответствии с вашими требованиями

$(window).on("load",function() {           
            MakeRows();
            addRowspan();
            $(".paginate_button").on("click", function() {
                MakeRows();
                addRowspan();
            });
        });

        function MakeRows() {
            var tmp_tbl = $("#dashboardDetails");
            var _l = tmp_tbl.find("tr");
            var _td = "",_t_td = "", old_txt = "",_t_txt = ""; _tr_count = 1;_tr_countadd = 1;
            for(i = 0;i< _l.length; i ++) {
                _t_td = tmp_tbl.find("tr").eq(i).find("td").eq(0).find("span");
                _t_txt = $(_t_td).text();
                _t_txt = _t_txt.replace(/\//,"_");_t_txt = _t_txt.replace(/\//,"_");

                if (_t_txt.length > 0) {
                    if(_t_txt != old_txt) {
                        if($(_l).eq(i).hasClass(_t_txt) == false) {
                            _tr_count = 1;_tr_countadd = 1;
                            $(_l).eq(i).addClass("" + _t_txt + "").addClass(_t_txt + "_" + i);
                        }
                        old_txt = _t_txt;
                    } else {
                        _tr_count = _tr_count + 1;
                        if (_tr_countadd == 1) {
                            $(_l).eq(i).addClass("" + _t_txt + "").addClass(_t_txt + "_" + i)
                                .addClass("hiddenClass").addClass("maintr").attr("trcount", _tr_count).attr("addedtrcount", "maintr");                            
                            _tr_countadd = _tr_countadd + 1;
                        } else {
                            $(_l).eq(i).addClass("" + _t_txt + "").addClass(_t_txt + "_" + i)
                                .addClass("hiddenClass").attr("trcount", _tr_count)
                        }
                    }
                }
                _t_td = "";
            }
        }

        function addRowspan() {
            var t_txt = "";
            var _alltrmain = $(".maintr");
            var _h_td = ["0","10","11","12","13"];
            for (i = 0; i <= _alltrmain.length; i ++) {
                for (j = 0; j <= _h_td.length; j ++) {
                    t_txt = $(_alltrmain).eq(i).attr("trcount");
                    $(_alltrmain).eq(i).prev().find("td").eq(_h_td[j]).attr("rowspan", t_txt);
                }
            }
        }
ответил shobha mishra 17 +03002016-10-17T14:52:32+03:00312016bEurope/MoscowMon, 17 Oct 2016 14:52:32 +0300 2016, 14:52:32

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132