Как получить значение флажка из Datatable? - PullRequest
0 голосов
/ 08 января 2019

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

Здесь просто возвращаем флажок. Как мы можем знать, что происходит щелчок? Помоги мне.

Вот код

function BindColumSelectTable(DataExchangeList) {
debugger
$('#columnSelectTable').DataTable({      
    "data": DataExchangeList,
    "destroy": true,
    "columns": [
        {
            data: 'check', render: function (data, type, row) {
                debugger;
                return '<input type="checkbox"/>'
            }
        },
        { data:"FieldCaption" },
    ],
    "columnDefs": [
        {                
            orderable: false,
            className: "select-checkbox",
            targets:0
        },
        { className:"tabletdAdjust","targets":[1]}
    ],       
});}

я использую jquery datatable

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Вот ответ, который я использую функцию onclick для каждого клика, который вызовет функцию

function BindColumSelectTable(DataExchangeList) {
debugger
$('#columnSelectTable').DataTable({      
    "data": DataExchangeList,
    "destroy": true,
    "columns": [
        {
            data: 'ColumnCheck', render: function (data, type, row) {
                debugger;                    
                return '<input type="checkbox" onclick="ColumnCheck(this)"/>'
            }
        },
        { data:"FieldCaption" },
    ],
    "columnDefs": [
        {                
            orderable: false,
            className: "select-checkbox",
            targets:0
        },
        { className:"tabletdAdjust","targets":[1]}
    ],       
});

}

приведенный выше код тот же, что и в вопросе, который я добавил, только одна вещь, которую я добавил, это функция onclick

и функция onclick

function ColumnCheck(thisObj) {
debugger;
var dataExchangeCheckColumnVM = $('#columnSelectTable').DataTable().row($(thisObj).parents('tr')).data();
var dataExchangeCheckColumnList = $('#columnSelectTable').DataTable().rows().data();
for (var i = 0; i < dataExchangeCheckColumnList.length; i++) {
    if (dataExchangeCheckColumnList[i].FieldCaption !== null) {
        if (dataExchangeCheckColumnList[i].FieldCaption === dataExchangeCheckColumnVM.FieldCaption) {
            dataExchangeCheckColumnList[i].ColumnCheck = thisObj.checked;
        }
    }
}
_dataExchangeColumnList = dataExchangeCheckColumnList;

}

поэтому я использовал свойство ** ColumnCheck ** это логическая переменная. на каждой итерации будет добавлено истинное значение, если установлен флажок

0 голосов
/ 08 января 2019
function BindColumSelectTable(DataExchangeList) {
$('#columnSelectTable').DataTable({      
"data": DataExchangeList,
"destroy": true,
"columns": [
    {
        data: 'check', render: function (data, type, row) {
            var checkbox = $("<input/>",{
              "type": "checkbox"
            });
        if(data === "1"){
            checkbox.attr("checked", "checked");
            checkbox.addClass("checked");
        }else{
            checkbox.addClass("unchecked");
        }
        return checkbox.prop("outerHTML")
      }
    },
    { data:"FieldCaption" },
],
"columnDefs": [
    {                
        orderable: false,
        className: "select-checkbox",
        targets:0
    },
    { className:"tabletdAdjust","targets":[1]}
],
});}

Попробуйте это

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