Использование jeditable для таблиц с вкладками - PullRequest
0 голосов
/ 28 августа 2011

Я новичок, когда дело доходит до данных и jeditable. Прямо сейчас я пытаюсь использовать jeditable в моих таблицах данных, но это не будет работать до конца. Моя проблема: когда я переключаю вкладку в моей таблице данных, событие jeditable не переходит на новую вкладку, поэтому я не могу редактировать ни одну ячейку. Первая вкладка - единственная, где я могу редактировать ячейки.

Есть ли какое-нибудь простое решение для моей проблемы или есть какие-то другие темы по этому вопросу, которые я пропустил?

$("#tabs").tabs( {
    "show": function(event, ui) {
        var oTable = $('div.dataTables_scrollBody>table.display', ui.panel).dataTable();
        if ( oTable.length > 0 ) {
            oTable.fnAdjustColumnSizing();
        }
    }
});

// Sets datatable for main table in offerts(admin).
var oTable = $('.display.offerts').dataTable({
    "bJQueryUI": true,
    "bStateSave": true,
    "aoColumns": [
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        { "bSortable": false }
    ],
    "oLanguage": {
        "sProcessing": "Processing...",
        "sLengthMenu": "Visa _MENU_ rader",
        "sZeroRecords": "Inga matchande rader funna",
        "sEmptyTable": "Ingen data tillgänglig i tabellen",
        "sLoadingRecords": "Laddar...",
        "sInfo": "Visar _START_ till _END_ av _TOTAL_ rader",
        "sInfoEmpty": "Visar 0 till 0 av 0 rader",
        "sInfoFiltered": "(filtrerat från _MAX_ rader)",
        "sInfoPostFix": "",
        "sSearch": "Sök i alla kolumner:"
    }
});

  /* Apply the jEditable handlers to the table */
    $('td.contacted, td.complete, td.sold', oTable.fnGetNodes()).editable( '../index.php/offerts/update_offert_status', {
        data    : "{'Ja':'Ja','Nej':'Nej'}",
        type    : 'select',
        submit  : 'OK',
        "callback": function( sValue, y ) {
            var aPos = oTable.fnGetPosition( this );
            oTable.fnUpdate( sValue, aPos[0], aPos[1] );
        },
        "submitdata": function ( value, settings ) {
            return {
                "row_id": this.parentNode.getAttribute('id'),
                "column": oTable.fnGetPosition( this )[2]
            };
        },
        "height": "14px"
    });

Заранее спасибо!

1 Ответ

0 голосов
/ 29 августа 2011

Я думаю (но я предполагаю, что нет HTML-кода), что ваша проблема в том, что вы инициализируете более одного объекта данных:

  var oTable = $('.display.offerts').dataTable

И тогда, когда вы получаете узлы от объекта, вы получаете узлы только одной таблицы.

  $('td.contacted, td.complete, td.sold', oTable.fnGetNodes())

Если у вас более одной таблицы, вы должны использовать идентификаторы, а не классы, чтобы иметь разные объекты, с которыми вы можете работать

...