首页 > 解决方案 > Kendo UI - JavaScript 复选框值提交到 DataSource 读取

问题描述

我是 Kendo Ui 和 JavaScript 编程的初学者。我有一个简单的问题,如何将复选框中的值提交到 dataSource 传输:读取?

因此“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();
    }
}

标签: javascriptcheckboxkendo-uikendo-grid

解决方案


您可以使用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();
}

推荐阅读