zoukankan      html  css  js  c++  java
  • (5)kendo UI使用基础介绍与问题整理——Grid问题/显示效果的一些问题

         由于我参与的项目中涉及到一些不一样的显示效果,这里对用到的几个进行简单的整理和说明。

     一、给表头和内容添加样式

            headerAttributes、attributes这两个属性分别是给表头和表内容添加样式的两个属性,使用demo如下:

     {
             field: "Name",
             title: "名称",
             minResizableWidth: 220,
             headerAttributes: {
               style: "text-align: left;", //列标题居左
                  class: "color-red"
           },
             attributes: {
                 style: "text-align: left;", //列内容居左
                 class: "color-red"
             }
    },

       可以添加style或者class设置样式。可以在官网找到这部分的参考demo。

     二、Multi-column headers

            官网效果截图如下:

            

           简要代码如下:

    columns: [{
                field: "CompanyName",
                title: "Company Name",
                 420
            },
            {
                title: "Contact Info",
                columns: [{
                    field: "ContactTitle",
                    title: "Contact Title",
                     200
                },{
                    field: "ContactName",
                    title: "Contact Name",
                     200
                },{
                    title: "Location",
                    columns: [ {
                        field: "Country",
                         200
                    },{
                        field: "City",
                         200
                    }]
                },{
                    field: "Phone",
                    title: "Phone"
                }]
            }]

    很容易理解,就是嵌套的办法。

    三、自定义编辑列表项

             (啊,心好累,之前写好的内容保存的时候竟然出了问题,还要再写一遍o(╥﹏╥)o)

             首先需要解释一下,我这边说的“自定义编辑列”,并不是Grid的editable的那种编辑状态,而是列表项里带有可编辑的内容,如:input、dropdownlist、textare等可以编辑的组件。

             下面上一个简略的demo:      

    {
               field: "Name",
               title: "名字",
                100,
               template: function (e) {
                     return '<input name="Name"  value="' + e.Name+ '"  type="text" />';
               }
    }

         通过上面的代码,我所谓的自定义编辑列表项的意思,大家应该明白了。

         (1)解决自定义编辑列表项Gird的数据保存问题

         对于带有自定义编辑列表项的Grid,可能在实际应用的时候,会遇到数据保存的问题,就是Gird的dataSource数据保存的问题。

         解决保存数据的问题:

         思路:给可编辑的输入框或下拉框,添加一个onblur事件,然后在onblur事件中添加修改dataSource的方法。

         代码如下:

    //Grid column
    {
               field: "Name",
               title: "名字",
                100,
               template: function (e) {
                     return '<input name="Name"  value="' + e.Name+ '"  type="text" onblur="changeName(this.value,' + e.Id + ')"/>';
               }
    }
    
    //changeName
    function changeName(Name, Id) {
        var data = $("#grid").data("kendoGrid").dataSource.data();
        if (typeof (data) != "undefined") {
            for (var i = 0; i < data.length; i++) {
                if (data[i].Id == Id) {
                    data[i].Name= Name;
                    break;
                }
            }
        }
    };

    (2)初始化组件的问题

     如果列表项是dropdownlist,就会涉及到初始化dropdownlist组件的问题,我的解决方法是把初始化的代码放到databound里。

     简略的初始化dropdownlist的代码如下:

    dataBound: function () {
              if(this.dataSource.data().length>0) {
                    var selects = $("select[name='dropdownlist']");
                    if (selects.length > 0) {
                        for (var i = 0; i < selects.length; i++) {
                            //这里写dropdownlist的初始化代码
                            /*这里大家自己发挥吧*/
                        }
                    }
                }
     }

    =======================

     四、在一个页面加载数据实现的滑动翻页(官网有此demo)

    官网demo地址:https://demos.telerik.com/kendo-ui/grid/virtualization-remote-data

    描述

    在某些情况下,您可能需要在网格中使用大量的数据,并且由于浏览器资源有限,一次获取并处理这些数据会造成性能损失。

    幸运的是,Kendo UI网格有一个称为数据虚拟化的解决方案,可以缓解在处理大量数据时的速度减慢。当通过scrollable-> virtual配置选项启用时,它将显示网格内容的垂直滚动条,并仅呈现通过网格数据源pageSize属性设置的项目数拖动滚动条并超出pageSize后,它会自动请求检索并呈现下一组网格行。

    网格虚拟化功能支持本地和远程数据,而在本演示中,记录是从远程端点获取的。

    demo:

    <div id="grid"></div>
                <script>
                    $(document).ready(function() {
                        $("#grid").kendoGrid({
                            dataSource: {
                                type: "odata",
                                serverPaging: true,
                                serverSorting: true,
                                pageSize: 100,
                                transport: {
                                    read: "https://demos.telerik.com/kendo-ui/service/Northwind.svc/Orders"
                                }
                            },
                            height: 543,
                            scrollable: {
                                virtual: true
                            },
                            sortable: true,
                            columns: [
                                { field: "OrderID", title: "Order ID",  110 },
                                { field: "CustomerID", title: "Customer ID",  130},
                                { field: "ShipName", title: "Ship Name",  280 },
                                { field: "ShipAddress", title: "Ship Address" },
                                { field: "ShipCity", title: "Ship City",  160 },
                                { field: "ShipCountry", title: "Ship Country",  160 }
                            ]
                        });
                    });
                </script>
  • 相关阅读:
    输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符各有多少
    有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串
    写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
    有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位
    有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,见图8.43 写一函数实现以上功能,在主函数中输人n个整数和输出调整后的n个数
    输入10个整数,将其中最小的数与第一个数对换, 把最大的数与最后一个数对换
    LOJ#3271. 「JOISC 2020 Day1」建筑装饰 4 DP+找规律
    LOJ#3160. 「NOI2019」斗主地 打表+拉格朗日插值
    CF1386C Joker 双指针+动态树
    LuoguP2605 [ZJOI2010]基站选址 线段树优化DP
  • 原文地址:https://www.cnblogs.com/lindaCai/p/8252546.html
Copyright © 2011-2022 走看看