• EasyUI


    效果:

    html代码:

    <div>
                <!--使用JS加载方式-->
                <table id="tab"></table>
    
                <!--按钮--->
                <div id="tb">
                    <div style="padding: 5px;">
                        <a href="#" class="easyui-linkbutton" data-options ="iconCls:'icon-add', plain:true," onclick="obj.add();">添加</a>
                        <a href="#" class="easyui-linkbutton" data-options ="iconCls:'icon-edit', plain:true,">修改</a>
                        <a href="#" class="easyui-linkbutton" data-options ="iconCls:'icon-remove', plain:true,">删除</a>
                        <a href="#" class="easyui-linkbutton" data-options ="iconCls:'icon-save', plain:true,"style="display: none;" id="save" onclick="obj.save();">保存</a>
                        <a href="#" class="easyui-linkbutton" data-options ="iconCls:'icon-redo', plain:true,"style="display: none;" id="redo" onclick="obj.redo();">取消编辑</a>
                    </div>
                    <div style="padding-left: 10px; padding-bottom: 10px;">
                        搜索姓名(可以模糊查询):<input id="name" name="name" type="text" class="textbox" style=" 130px;" />
                        查询时间 从:<input id="time_from" name="time_from" type="text" class="easyui-datebox" style=" 130px;" />
                        到:<input id="time_to" name="time_to" type="text" class="easyui-datebox" style=" 130px;" />
                        <a id="search" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'," style="margin-left: 20px; padding: 0 10px 0 10px;">搜索</a>
                    </div>
                </div>
            </div>

    JS代码:

    <script type="text/javascript">
    
            //扩展 dateTimeBox
            $.extend($.fn.datagrid.defaults.editors, {
                datetimebox: {
                    init: function (container, options) {
                        var input = $('<input type="text">').appendTo(container);
                        options.editable = false;
                        input.datetimebox(options);
                        return input;
                    },
                    getValue: function (target) {
                        return $(target).datetimebox('getValue');
                    },
                    setValue: function (target, value) {
                        $(target).datetimebox('setValue', value);
                    },
                    resize: function (target, width) {
                        $(target).datetimebox('resize', width);
                    },
                    destroy: function (target) {
                        $(target).datetimebox('destroy');
                    },
                }
            });
    
    
            $(function () {
                obj = {
                    editRow: false,
                    search: function () {
                        $('#box').datagrid('load', {
                            user: $.trim($('input[name="user"]').val()),
                            date_from: $('input[name="date_from"]').val(),
                            date_to: $('input[name="date_to"]').val(),
                        });
                    },
                    add: function () {
                        $('#save,#redo').show();
                        /*
                        //当前页行结尾添加
                        $('#box').datagrid('appendRow', {
                            user : 'bnbbs',
                            email : 'bnbbs@163.com',
                            date : '2014-11-11',
                        });
                        */
    
                        if (!this.editRow) {
                            //添加一行 
                            $('#tab').datagrid('insertRow', {
                                index: 0,
                                row: {
                                    /*
                                    user : 'bnbbs',
                                    email : 'bnbbs@163.com',
                                    date : '2014-11-11',
                                    */
                                },
                            });
    
                            //将第一行设置为可编辑状态
                            $('#tab').datagrid('beginEdit', 0);
    
                            this.editRow = true;
                        }
                    },
                    save: function () {
                        //这两句不应该放这里,应该是保存成功后,再执行
                        //$('#save,#redo').hide();
                        //this.editRow = false;
                        //将第一行设置为结束编辑状态
                        $('#tab').datagrid('endEdit', 0);
                    },
                    redo: function () {
                        $('#save,#redo').hide();
                        this.editRow = false;
                        $('#tab').datagrid('rejectChanges');
                    },
    
                };
    
                //格式化日期输出样式
                $('#time_from, #time_to').datebox({
                    formatter: function (date) { return date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate(); },
                });
    
                //Datagrid设置
                $('#tab').datagrid({
                    //===================================== 样式 ===============================================//
                     800,//宽度
                    title: '信息列表',//标题名
                    iconCls: 'icon-search',//图标
                    singleSelect: true,//是否单选
                    striped: true,//是否开启斑马线
                    fitColumns: false,//是否自适应宽度(出现滚动条)
                    loadMsg: '正在努力加载,请稍后………………',//显示加载提示信息
                    rownumbers: true,//显示行号
                    //showHeader: false,//是否显示行头(标题)
                    //showFooter:false,//显示行尾,默认情况下不显示,要在后台使用json数据传递
                    //==========================================================================================//
    
    
                    //============================= 加载数据,要显示的字段 =========================================//
                    //要加载的数据
                    url: "../Json/datagridjson.ashx",
                    //要显示的列
                    columns: [[
                        {
                            field: 'id',
                            title: '编号',
                            align: 'center',//标题和内容居中
                            resizable: false,//不允许改变大小
                            //hidden:true,//隐藏该列
                             100,//所有字段设置成100,起到自动平均分配大小的作用
    
                            //设置为可以编辑的列,只有这样才能使用编辑
                            editor: {
                                type: 'validatebox',
                                //其中写的使一些验证,像邮箱验证等等
                                options: {
                                    required: true,
                                },
                            },
                        },
                        {
                            field: 'name',
                            title: '姓名',
                             100,//所有字段设置成100,起到自动平均分配大小的作用
                            halign: 'center',//仅标题居中
    
                            //显示数据的时候,格式化数据
                            //formatter: function (value, row, index) {
                            //    return '[ ' + value + ' ]';
                            //},
    
                            //设置为可以编辑的列,只有这样才能使用编辑
                            editor: {
                                type: 'validatebox',
                                //其中写的使一些验证,像邮箱验证等等
                                options: {
                                    required: true,
                                },
                            },
                        },
                        {
                            field: 'sex',
                            title: '性别',
                             100,//所有字段设置成100,起到自动平均分配大小的作用
    
                            //设置为可以编辑的列,只有这样才能使用编辑
                            editor: {
                                type: 'validatebox',
                                //其中写的使一些验证,像邮箱验证等等
                                options: {
                                    required: true,
                                },
                            },
                        },
                        //在字段中使用排序,每点击一次,都会向后台POST要排序的字段和正序还是倒序排列。
                        {
                            field: 'createtime',
                            title: '创建时间',
                             400,//所有字段设置成100,起到自动平均分配大小的作用
                            sortable: true,//允许排序
    
                            //设置为可以编辑的列,只有这样才能使用编辑
                            editor: {
                                type: 'validatebox',
                                //其中写的使一些验证,像邮箱验证等等
                                options: {
                                    required: true,
                                },
                            },
                        }
                    ]],
                    //==========================================================================================//
    
    
                    //===================================== 分页 ===============================================//
                    //显示分页控件栏
                    pagination: true,
                    pageNumber: 1,//初始化的时候在第几页
                    pageSize: 10,//,每页显示的条数
                    pageList: [10, 15, 20],//每页显示的条数
                    //==========================================================================================//
    
    
                    //===================================== 排序 ===============================================//
                    //通过POST传递到后台,然后进行排序。
                    sortName: 'createtime',
                    sortOrder: 'desc',
                    //==========================================================================================//
    
    
                    //===================================== 按钮 ===============================================//
                    toolbar: '#tb',
                    //==========================================================================================//
    
    
                    //===================================== 添加一行 ===============================================//
                    onAfterEdit: function (rowIndex, rowData, changes) {
                        $('#save,#redo').hide();
                        obj.editRow = false;
                        console.log(rowData);
                    },
                    //==========================================================================================//
    
                });
            })
        </script>

    后台:

    • 得到数据,通过Ajax发送到后台,进行保存数据库,然后刷新数据即可。

    -------------------------------------------------

  • 相关阅读:
    disruptor笔记之一:快速入门
    React-高阶函数_函数柯里化
    解决跨域、同源策略-React中代理的配置
    React中key的作用
    React三种路由参数传递方式
    React生命周期(好玩的讲解方式)
    React数据共享插件-PubSub
    React中路由基本&高级使用
    React中嵌套路由
    React中网络请求(axios和fetch)
  • 原文地址:https://www.cnblogs.com/KTblog/p/4929843.html
Copyright © 2020-2023  润新知