Таблица Meteor и Bootstrap, как вызвать функцию detailFormatter

Я использую таблицу Bootstrap

1: http://bootstrap-table.wenzhixin.net.cn/ . Я добавил Этот пакет для импорта таблицы Bootstrap.

     <table id="table" class="table table-striped"
       data-toolbar="#toolbar"
       data-detail-view="true"
       data-height="460"
       data-pagination="true"
       data-search="true"
       data-sort-name="name"
       data-sort-order="desc"
       data-unique-id="id"
       data-page-list="[10, 25, 50, 100, ALL]"
       data-detail-formatter="detailFormatter"
       data-show-export="true"
       data-show-refresh="true"
       data-show-columns="true"
       data-row-style="rowStyle"
       data-export-types="['csv']">
    <thead>
    <tr>
        <th data-field="id" data-sortable="true">id</th>
        <th data-field="question" data-sortable="true">question</th>
        <th data-field="answer" data-sortable="true">answer</th>
        <th data-field="category" data-visible="true" data-tableexport-display="always">category</th>
    </tr>
    </thead>
</table>

Он работает нормально, но у меня есть функция detailFormatter, которую нужно вызывать для создания сведений о строках. в основном я пытаюсь добиться этого

Итак, в моем js я добавил функцию detailFormatter, но она не работает. Итак, где я должен использовать функцию detailFormatter для работы.

 if (Meteor.isClient) {

function detailFormatter(index, row) {
alert("detailFormatter 1")
                var html = [];
                $.each(row, function (key, value) {
                    console.log("key: "+key);
                    if(key=="answer") {
                        html.push('<p><b>' + key + ':</b> <textarea class="form-control">' + value + '</textarea> </p>');
                        html.push('<button type=button class=update-btn>Update</button>');

                    }
                    if(key=="category"){


                        console.log("category:: "+value)

                        if(value=="application_related"){
                                html.push('<select class="form-control"><option  selected value="application_related">Application Related</option><option value="application_status">Application Status</option></select>');
                        } else {
                            html.push('<select class="form-control"><option  selected value="application_related">Application Related</option><option value="application_status" selected>Application Status</option></select>');
                        }

                        $('select').first().val("application_status");

                        //$('select option[value="' + value + '"]')
                    }
                    if(key=="id"){
                         html.push('<input type="hidden" class="id" value='+ value + '></input>');
                        console.log("category:: "+value)
                    }
                });
                return html.join('');
        }

}


person monda    schedule 15.02.2016    source источник


Ответы (1)


Я столкнулся с аналогичной проблемой с rowStyle при определении через HTML. Решение — передать функции в таблицу через JS. То же самое должно относиться к любой функции, которую необходимо передать в bootstrap-table.

Например:

Template.results.onRendered(function(){
    this.$('#table').bootstrapTable({detailFormatter : myFormatterFunction, rowStyle : myRowStyleFunction});
};
person ethesx    schedule 05.05.2016
comment
Предполагается, что средство форматирования деталей создает новый пустой столбец в заголовке таблицы, но в моем случае символ «+» плюс для расширения подробного представления занимает столбец поля идентификатора таблицы. Я пытался найти решение, но не смог найти его. помоги мне если сможешь - person Jaydeep Goswami; 17.09.2018