KendoUI 在线编辑多级联动

以下代码是7级联动效果

 代码

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@include file="/static/common/ace14commonJsForKendo.jsp"%>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<script id="gridbar" type="text/x-kendo-template">
    <div id="gridmenu" style="float:left;margin-right:3px;margin-top:2px;">
        <form id="searchform">
            关键字:<input type="text" id="s_demo_title" name="GCMC" class="k-textbox" />&nbsp;
            <button type="button" id="btnSearch" class="k-button search_btn_css"><span class="k-icon k-i-search"></span>&nbsp;查询</button>
        </form>
    </div>
    <div id="operate" style="float:left;margin-right:3px;margin-top:2px;">
        <button id="btnAdd" class="k-button k-buyem datton-icontext k-notification-warning ml-1 k-grid-add add_btn_css">
            <span class="k-icon k-i-plus"></span>&nbsp;新增</button>
        <button id="btnSubmit" class="k-grid-save-changes" style="display: none;">真正保存按钮</button>
        <button id="btnEdit" class="k-button k-button-icontext  edit_btn_css">
            <span class="k-icon k-i-check"></span>&nbsp;保存</button>
        <%--        <button id="btnDelete" class="k-button k-button-icontext k-grid-cancel-changes del_btn_css">--%>
        <%--            <span class="k-icon k-i-cancel"></span>&nbsp;撤销</button>--%>
    </div>
</script>
<div id="grid"></div>

<script>
    $(document).ready(function () {
        var grid=null;
        var crudServiceBaseUrl = "<%=basePath%>",
            dataSource = new kendo.data.DataSource({
                transport: {
                    read: function (options) {
                        options.data.gysmc=$("#s_demo_title").val();
                        readItem(options, '<%=basePath%>WzCgsqmx/ajaxWzCgsqmxForRowEditList');
                    },
                    create: function (options) { createItem(options, '<%=basePath%>/WzCgsqmx/ajaxSaveWzCgsqmxForRow') },
                    update: function (options) { updateItem(options, '<%=basePath%>/WzCgsqmx/ajaxSaveWzCgsqmxForRow') },
                    //destroy: function (options) { destroyItem(options, '<%=basePath%>/xmJbxx/ajaxDelxmJbxxForRow') },
                },
                //batch: true,
                pageSize: 100,
                schema: {
                    model: {
                        id: "PKID",
                        fields: {
                            rowNumber:{editable: false, nullable: true},
                            PKID: {editable: false, nullable: true},
                            //WLBM: {validation: {required: true}}
                        }
                    }
                }
            });

        grid = $("#grid").kendoGrid({
            dataSource: dataSource,
            navigatable: true,
            pageable: true,
            //height: 550,
            toolbar: [
                { template: kendo.template($("#gridbar").html()) } //头部按钮  template: 绑定模板
            ],
            //serverFiltering: true,//支持查询功能
            //serverGrouping: true,
            reorderable: true,
            serverSorting: true,
            // filterable: true,
            headerCenter: true,
            rowNumber: true,
            srollable: true,
            //columnMenu: true,//当设置成true,通过点击列投的图标Grid将显示列菜单。列菜单允许用户控制显示或者关闭列,过滤和排序(当过滤和排序被允许)。默认情况列菜单不被允许。
            serverPaging: true,
            //sortable: true,
            // sortable: {
            //     mode: "multiple"
            // },
            resizable: true,
            pageable: {
                refresh: true,
                //pageSizes: true,
                buttonCount: 5,
                page: 1,
                //pageSize: 100,
                pageSizes: ['all',100, 200, 300],
                messages: {
                    display: "显示 {0}-{1} 共 {2} 项",
                    empty: "没有数据",
                    itemsPerPage: "每面显示数量",
                    first: "第一页",
                    last: "最后一页",
                    next: "下一页",
                    previous: "上一页"
                }
            },

            columns: [
                { field: "PKID", title: "PKID", width: "300px", hidden:true},

                { field: "CLYT", title: "工程ID", width: "300px", hidden:true},
                { field: "GCMC", title: "工程名称", width: "300px",
                    //列标题居中
                    headerAttributes: {"class": "table-header-cell",style: "text-align:left;"},
                    //列数据居左
                    attributes: {style: "text-align:left"},
                    //列数据过长时,不换行,简略为 " ... "
                    attributes: {style: "white-space:nowrap;text-overflow:ellipsis;"},
                    editor: function (container, options) {
                        var curData = options.model;
                        $('<input name="GCMC" data-bind="value: '+ options.field +'">')
                            .appendTo(container)
                            .kendoMultiColumnComboBox({
                                dataSource: {
                                    serverFiltering: true,
                                    transport: {
                                        read: function (options) {
                                            if(options.data.filter.filters.length==0){
                                                options.success({data:[]});
                                                return;
                                            }
                                            if(options.data.filter.filters[0].value!=''){
                                                $.post('<%=basePath%>xmJbxx/ajaxGetXmJbxxByName',{q:options.data.filter.filters[0].value},function(res){
                                                    options.success(res);
                                                });
                                            }
                                        }
                                    },
                                    schema: {
                                        data: 'data'
                                    }
                                },
                                columns: [
                                    //{ field: 'PKID', title: 'PKID',width:100, hidden:true },
                                    { field: 'XMID', title: '项目编号',width:120 },
                                    { field: 'GCMC', title: '工程名称',width:300 }
                                ],
                                dataValueField: 'GCMC',
                                dataTextField: 'GCMC',
                                filter: "contains",
                                autoBind: false,
                                minLength: 1,
                                select:function(options){
                                    curData.CLYT =options.dataItem.PKID;
                                },
                                close: function (optins) {
                                    $("#grid").data("kendoGrid").refresh();
                                }
                            });
                    }
                },
                //{ command: "destroy", title: "&nbsp;", width: 150 }
                { field: "WLGGID", title: "物料大类ID", width: "150px",hidden:true},
                { field: "WLGGMC", title: "物料大类", width: "150px"
                    ,editor: function (container, options) {

                        //获取grid表格的某一行
                        //var rowData1 = grid.dataSource.at(indexS);
                        //设置某列的新值
                        //rowData1.set("connect","OK");

                        //当前的数据
                        var curData = options.model;
                        //下级清空测试
                        curData.WLBM ="";
                        curData.WLMC ="";
                        curData.GGXH ="";
                        curData.WLMCGGXH  ="";
                        curData.JSYQ ="";
                        curData.WLMCJSYQ="";
                        curData.CZ ="";
                        curData.WLMCCZ="";
                        curData.DW ="";
                        curData.WLMCDW="";
                        $('<select name="WLGGMC" data-bind="value: '+ options.field +'"></select>')
                            .appendTo(container)
                            .kendoMultiColumnComboBox({
                                dataSource: {
                                    transport: {
                                        read: function (options) {
                                            $.post("<%=basePath%>Wzjc/ajaxGetWzjcFlList?sslb=0",function(data){
                                                options.success(data);
                                            });
                                        }
                                    },
                                    schema: {
                                        data: 'data'
                                    }
                                },
                                optionLabel: '-= 请选择 =-',
                                dataValueField: 'WLMC',
                                dataTextField: 'WLMC',
                                filter: 'contains',
                                delay: 30,
                                minLength: 1,
                                enforceMinLength: true,
                                select:function(options){
                                    curData.WLGGID =options.dataItem.WLBM;
                                },
                                close: function (optins) {
                                    $("#grid").data("kendoGrid").refresh();
                                }
                            });
                    }},
                { field: "WLBM", title: "物料名称ID", width: "150px",hidden:true},
                { field: "WLMC", title: "物料名称", width: "150px"
                    ,editor: function (container, options) {
                        //一级编码 curData.="";
                        var curData = options.model;

                        curData.GGXH ="";
                        curData.WLMCGGXH  ="";
                        curData.JSYQ ="";
                        curData.WLMCJSYQ="";
                        curData.CZ ="";
                        curData.WLMCCZ="";
                        curData.DW ="";
                        curData.WLMCDW="";
                        var yjCode=curData.WLGGID;
                        $('<select name="WLMC" data-bind="value: '+ options.field +'"></select>')
                            .appendTo(container)
                            .kendoMultiColumnComboBox({ //.kendoDropDownList({
                                dataSource: {
                                    transport: {
                                        read: function (options) {
                                            $.post("<%=basePath%>Wzjc/ajaxGetWzjcFlList?sslb="+yjCode,function(data){
                                                options.success(data);
                                            });
                                        }
                                    },
                                    schema: {
                                        data: 'data'
                                    }
                                },
                                optionLabel: '-= 请选择 =-',
                                dataValueField: 'WLMC',
                                dataTextField: 'WLMC',
                                filter: 'contains',
                                delay: 30,
                                minLength: 1,
                                enforceMinLength: true,
                                select:function(options){
                                    curData.WLBM =options.dataItem.WLBM;
                                  
                                },
                                close: function (optins) {
                                    $("#grid").data("kendoGrid").refresh();
                                }
                            });
                    }
                },
                { field: "GGXH", title: "规格型号ID", width: "150px",hidden:true},
                { field: "WLMCGGXH", title: "规格型号", width: "150px"
                    ,editor: function (container, options) {
                        //一级编码 curData.="";
                        var curData = options.model;
                        var ejCode=curData.WLBM;
                        $('<select name="WLMCGGXH" data-bind="value: '+ options.field +'"></select>')
                            .appendTo(container)
                            .kendoMultiColumnComboBox({ //.kendoDropDownList({
                                dataSource: {
                                    transport: {
                                        read: function (options) {
                                            debugger;
                                            $.post("<%=basePath%>Wlfl/ajaxGetWlflByWlbm?lb=GGXH&wlbm="+ejCode,function(data){
                                                debugger;
                                                options.success(data);
                                            });
                                        }
                                    },
                                    schema: {
                                        data: 'data'
                                    }
                                },
                                optionLabel: '-= 请选择 =-',
                                dataValueField: 'WLMC',
                                dataTextField: 'WLMC',
                                filter: 'contains',
                                delay: 30,
                                minLength: 1,
                                enforceMinLength: true,
                                select:function(options){
                                    curData.WLMCGGXH   =options.dataItem.WLBM;
                                },
                                close: function (optins) {
                                    $("#grid").data("kendoGrid").refresh();
                                }
                            });
                    }
                },
                { field: "JSYQ", title: "技术要求ID", width: "150px",hidden:true},
                { field: "WLMCJSYQ", title: "技术要求", width: "150px"
                    ,editor: function (container, options) {
                        //一级编码 curData.="";
                        var curData = options.model;
                        var ejCode=curData.WLBM;
                        $('<select name="WLMCJSYQ " data-bind="value: '+ options.field +'"></select>')
                            .appendTo(container)
                            .kendoMultiColumnComboBox({ //.kendoDropDownList({
                                dataSource: {
                                    transport: {
                                        read: function (options) {
                                            debugger;
                                            $.post("<%=basePath%>Wlfl/ajaxGetWlflByWlbm?lb=JSYQ&wlbm="+ejCode,function(data){
                                                debugger;
                                                options.success(data);
                                            });
                                        }
                                    },
                                    schema: {
                                        data: 'data'
                                    }
                                },
                                optionLabel: '-= 请选择 =-',
                                dataValueField: 'WLMC',
                                dataTextField: 'WLMC',
                                filter: 'contains',
                                delay: 30,
                                minLength: 1,
                                enforceMinLength: true,
                                select:function(options){
                                    curData.WLMCJSYQ =options.dataItem.WLBM;
                                },
                                close: function (optins) {
                                    $("#grid").data("kendoGrid").refresh();
                                }
                            });
                    }
                },
                { field: "CZ", title: "单位ID", width: "150px",hidden:true},
                { field: "WLMCCZ", title: "单位", width: "150px"
                    ,editor: function (container, options) {
                        //一级编码 curData.="";
                        var curData = options.model;
                        var ejCode=curData.WLBM;
                        $('<select name="WLMCCZ" data-bind="value: '+ options.field +'"></select>')
                            .appendTo(container)
                            .kendoMultiColumnComboBox({ //.kendoDropDownList({
                                dataSource: {
                                    transport: {
                                        read: function (options) {
                                            debugger;
                                            $.post("<%=basePath%>Wlfl/ajaxGetWlflByWlbm?lb=DW&wlbm="+ejCode,function(data){
                                                debugger;
                                                options.success(data);
                                            });
                                        }
                                    },
                                    schema: {
                                        data: 'data'
                                    }
                                },
                                optionLabel: '-= 请选择 =-',
                                dataValueField: 'WLMC',
                                dataTextField: 'WLMC',
                                filter: 'contains',
                                delay: 30,
                                minLength: 1,
                                enforceMinLength: true,
                                select:function(options){
                                    curData.WLMCCZ =options.dataItem.WLBM;
                                },
                                close: function (optins) {
                                    $("#grid").data("kendoGrid").refresh();
                                }
                            });
                    }
                },
                { field: "DW", title: "材质ID", width: "150px",hidden:true},
                { field: "WLMCDW", title: "材质", width: "150px"
                    ,editor: function (container, options) {
                        //一级编码 curData.="";
                        var curData = options.model;
                        var ejCode=curData.WLBM;
                        $('<select name="WLMCDW" data-bind="value: '+ options.field +'"></select>')
                            .appendTo(container)
                            .kendoMultiColumnComboBox({ //.kendoDropDownList({
                                dataSource: {
                                    transport: {
                                        read: function (options) {
                                            debugger; //ejCode能不能别写这样的啊,我看不懂啊
                                            $.post("<%=basePath%>Wlfl/ajaxGetWlflByWlbm?lb=CZ&wlbm="+ejCode,function(data){
                                                debugger;
                                                options.success(data);
                                            });
                                        }
                                    },
                                    schema: {
                                        data: 'data'
                                    }
                                },
                                optionLabel: '-= 请选择 =-',
                                dataValueField: 'WLMC',
                                dataTextField: 'WLMC',
                                filter: 'contains',
                                delay: 30,
                                minLength: 1,
                                enforceMinLength: true,
                                select:function(options){
                                    curData.WLMCDW =options.dataItem.WLBM;
                                },
                                close: function (optins) {
                                    $("#grid").data("kendoGrid").refresh();
                                }
                            });
                    }
                },

                { title: '操作', width: '100px',
                    command: [
                        { name: 'del', text: '删除',
                            iconClass: 'k-icon k-i-close',
                            click: function (e) {
                                e.preventDefault();
                                var gd =$('#grid').data('kendoGrid');
                                var delRow=$(e.target).closest('tr');
                                var row=this.dataItem(delRow);

                                if(row.isNew()){
                                    gd.removeRow(delRow,true);
                                    return;
                                }
                                if(confirm("确定删除?")==false){
                                    return false;
                                }

                                var newJson = JSON.parse(JSON.stringify(row));
                                delItem({ids:newJson.PKID}, '<%=basePath%>/xmJbxx/ajaxDelxmJbxxForRow',function(){
                                    gd.removeRow(delRow,true);
                                });
                            }
                        }
                    ]
                },
            ],dataBound: function () {
                var rows = this.items();
                var page = this.pager.page() - 1;
                var pagesize = this.pager.pageSize();
                $(rows).each(function () {
                    var index = $(this).index() + 1 + page * pagesize;
                    var rowLabel = $(this).find(".row-number");
                    $(rowLabel).html(index);
                });
            },editable: true,
            dataBound: function (e) {

                var items = e.sender.items();

                for (var i = 0; i < items.length; i++) {
                    var dataItem = e.sender.dataItem(items[i]);
                    if (dataItem.isNew() && dataItem.GCMC ==null) {
                       
                        dataItem.GCMC   ="";
                        dataItem.WLGGID  ="";
                        dataItem.WLGGMC ="";
                        dataItem.CLYT="";
                        dataItem.WLMC ="";
                        dataItem.WLBM ="";
                        dataItem.GGXH ="";
                        dataItem.WLMCGGXH  ="";
                        dataItem.JSYQ ="";
                        dataItem.WLMCJSYQ="";
                        dataItem.CZ ="";
                        dataItem.WLMCCZ="";
                        dataItem.DW ="";
                        dataItem.WLMCDW="";
                        dataItem.WLBM ="";
                        dataItem.WLMC ="";
                    }
                }
            }
        });
        $("#btnSearch").click(function () {
            $('#grid').data('kendoGrid').dataSource.page(1);
            $('#grid').data('kendoGrid').dataSource.read();
        });
        $("#btnEdit").click(function () {
            var addData = $('#grid').data('kendoGrid').dataSource.data();
            var flag=true;
            var msg="";
            for (var i=0;i<addData.length;i++){
                var item =addData[i];
                if(item.isNew()==false){
                    continue;
                }
                if(item.GCMC==null || $.trim(item.GCMC)==""){
                    msg="第"+(i+1)+"行第工程名称不能为空";
                    flag=false;
                    break;
                }
            }
            if(flag==false){
                alertMsg(msg, 'warning');
                return;
            }
            $("#btnSubmit").click();
        });

    });


</script>


</body>
</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值