Kendo UI - значение флажка JavaScript передается в DataSource для чтения - PullRequest
0 голосов
/ 21 декабря 2018

Я новичок в Kendo Ui, а также в программировании на JavaScript.У меня простой вопрос, как передать значение из моего флажка на транспорт dataSource: read?

, чтобы "getMarketData.php" смог получить значение "c1" (активное) и снова загрузить его на той же странице.

Здесь я предоставляю свой код.

Мой флажок:

<input type="checkbox" id="c1" name="checkbox1" class="k-checkbox" checked="checked" value="active" onclick="checkBox()">

Мой Javascript

<script>

$(function() {
    var dataSource = new kendo.data.DataSource({
                transport: {
                    read: {
                        url: "/getMarketData.php",
                        type: "POST"
                    }
                },
                schema: {
                    model: {
                        id: "marketID"
                    }
                }
    });
});

function checkBox() {

    var checkbox = document.getElementById("c1");

    if (checkbox.checked == true) { 
        //pass "active" data
        $("#grid").data("kendoGrid").refresh();
        $("#grid").data("kendoGrid").dataSource.read();     
    } else {    
        if (checkBox.value == 'active') {
            var x = 'inactive';
        }
        //pass "inactive" data
        $("#grid").data("kendoGrid").refresh();
        $("#grid").data("kendoGrid").dataSource.read();
    }
}

1 Ответ

0 голосов
/ 21 декабря 2018

Вы можете использовать свойство transport.read.data для передачи дополнительных данных (дополнительная информация: документация transport.read ).

Кроме того, вызывается функция refresh () не нужна.

Вот ваш отредактированный пример:

var dataSource = new kendo.data.DataSource({
  transport: {
    read: {
      url: '/getMarketData.php',
      type: 'POST',
      data: function() {
        return {
          c1: document.getElementById('c1').checked,
        };
      },
    },
  },
  schema: {
    model: {
      id: 'marketID',
    },
  },
});
function checkBox() {
  $('#grid')
    .data('kendoGrid')
    .dataSource.read();
}
...