通过dataSource调整kendoGrid中<tr>的位置

核心思路:

1.通过dataSource的data()方法拿到数组

2.通过对数组元素的增删调整位置(splice方法)

3.自测:data()方法需要在①fetch方法、②将数据源绑定到UI之后、③ setDataSource方法之后 调用才能取到数据(三选一)

官网上说还有read、query方法)

对data()方法返回值的描述:

The data items of the data source. Returns an empty array if the data source was not populated with data items via the readfetch, or query methods.

代码参考:

<html>
<head>
    <title>学生列表</title>
    <!-- <link href="https://kendo.cdn.telerik.com/2016.2.504/styles/kendo.common.min.css" rel="stylesheet"/>
     <link href="https://kendo.cdn.telerik.com/2016.2.504/styles/kendo.default.min.css" rel="stylesheet"/>
     <script src="https://kendo.cdn.telerik.com/2016.2.504/js/jquery.min.js"></script>
     <script src="https://kendo.cdn.telerik.com/2016.2.504/js/kendo.all.min.js"></script>-->
    <link href="/css/kendo.common.min.css" rel="stylesheet"/>
    <link href="/css/kendo.default-v2.min.css" rel="stylesheet"/>
    <script src="/js/jquery.min.js"></script>
    <script src="/js/kendo.all.min.js"></script>
</head>
<body>
<!-- 学生表格,用来显示数据 -->
<div id="stuGrid"></div>

<script>
    $(function () {

        // 1.准备数据源
        var gridDataSource = new kendo.data.DataSource({
            data: [
                {"id": "1", "name": "Alice", "age": 18},
                {"id": "2", "name": "Bob", "age": 19},
                {"id": "3", "name": "Candy", "age": 20},
                {"id": "4", "name": "David", "age": 21}
            ]
        });

        // 2.将数据源配置到kendoGrid UI
        $("#stuGrid").kendoGrid({
            dataSource: gridDataSource, // 将数据源绑定到Kendo组件上
            selectable: "row", // 行选择模式
            columns: [{
                title: "<input type='checkbox'/>全选", // 外侧"",里面''
                template: "<input type='checkbox'/>",
                width: 45
            }, {
                field: "id", // 取的是数据源中id字段的值
                title: "学号",
                width: 160
            }, {
                field: "name",
                title: "姓名",
                width: 160
            }, {
                field: "age",
                title: "年龄",
                width: 200
            }]
        });

        // 3.获取数据源
        var stuData = gridDataSource.data(); // 在fetch方法、将数据源绑定到UI之后、setDataSource方法之后调用data()才能获取到数据
        console.log("stuData = ", stuData);

        /**
         * 4.调整位置
         * 模拟需求:把id为3和4的<tr>置顶
         */
        var count = 0; // 目标元素需要与哪一个位置(count)上的元素交换
        for (var i = 0; i < stuData.length; i++) {
            var stu = stuData[i];
            if (stu.id == 3 || stu.id == 4) {
                stuData.splice(i, 1); // 删除stu(从i位置开始,删除1条数据)
                stuData.splice(count++, 0, stu); // 插入stu(在count位置,删除0条,插入stu)
            }
        }

        /*
         * 5.说明
         * stuData与gridDataSource都是对象的引用,可以操作同一个数组。
         * 所以通过stuData增删的数组就是gridDataSource里的那个数组
         */
    });

</script>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值