EasyUI DataGrid 窗体中的修改和删除按钮

(一)效果


我们在设计界面的时候,在EasyUI官网上下下来的都是这样的界面:



删除和修改按钮时放在表格上面的,当修改和删除某一行的数据的时候就会很麻烦,这个时候,我们需要这样的界面:



我们需要将操作按钮放在表格中,并实现与后台的链接。


(二)实现


首先我们如何设计这样的按钮:


<span style="font-size:18px;">        function initTable() {
            //把搜素框里的内容提交到后台对数据进行过滤。
            $('#tt').datagrid({
                url: '/OtherScores/GetAllOtherScores',
                width: "100%",
                height: 400,
                fitColumns: true,
                idField: 'ID',
                loadMsg: '正在加载用户的信息...',
                pagination: true,
                singleSelect: false,
                pageSize: 10,
                pageNumber: 1,
                pageList: [10, 20, 30],
                queryParams: {
                    searchName: $("#searchName").val(),
                    searchRemark: $("#searchRemark").val()
                },
                columns: [[
			{ field: 'ck', checkbox: true, align: 'left', width: 50 },
			{ field: 'StaffName', title: '考核人', width: 80 },
			{ field: 'OtherScoresAsscssProgram', title: '加分项', width: 120 },
                        { field: 'OtherScores', title: '分值', width: 120 },
                        { field: 'ID', title: 'ID', width: 120, hidden: 'true' },
                        {field: 'Operation', title: '操作', width: 120,
                         formatter: function (value, row, index) {
                                var e = '<a href="#" id="deitcls" οnclick="PorEdit(' + index + ')"><img src="../../EasyuiSource/themes/icons/pencil.png" border="0"></a> ';
                                var d = '<a href="#" οnclick="Delete(' + index + ')"><img src="../../EasyuiSource/themes/icons/cancel.png"></a>';
                                return e + d;
                                }  
                            }

                ]],
                toolbar: [{
                    id: 'btnDownShelf',
                    text: '添加用户',
                    iconCls: 'icon-add',
                    handler: function () {
                        showAddFrm();
                    }
                }, {
                    id: 'btnDelete',
                    text: '删除',
                    iconCls: 'icon-remove',
                    handler: function () {
                        doDelete();
                    }
                }
            ],
                onHeaderContextMenu: function (e, field) {
                },
                onLoadSuccess: function (data) {
                    $(".delUser").unbind("click");
                    $(".delUser").bind("click", function () {
                        alert($(this).attr("uid"));
                        return false;
                    });

                    $(".editUser").unbind("click");
                    $(".editUser").bind("click", function () {
                        //alert($(this).attr("uid"));
                        doEdit($(this).attr("uid"));
                        return false;
                    });
                }
            });
        }</span>


我们可以看到源代码是:


<span style="font-size:18px;"> {field: 'Operation', title: '操作', width: 120,
 formatter: function (value, row, index) {
      var e = '<a href="#" id="deitcls" οnclick="PorEdit(' + index + ')"><img src="../../EasyuiSource/themes/icons/pencil.png" border="0"></a> ';
      var d = '<a href="#" οnclick="Delete(' + index + ')"><img src="../../EasyuiSource/themes/icons/cancel.png"></a>';
      return e + d;}  </span>

这段代码就是对表格中的列进行编辑的,它的格式可以变化的。


我们可以看到是formatter函数它有三个值:

value:就是该表格中的值。

index取得该行号。

row取得改行所有的数据。


我们在这里只要传该行号就行了。


那么我们就看看这里代码中看到onclick调用的是ProEdit(index)函数,我们就在script标签中写这个函数将ID值传给后台就可以了:


<span style="font-size:18px;">        function PorEdit(index) {
            var id = $('#tt').datagrid("getRows")[index].ID;    //index为行号,我们用getRows属性来得到改行中的ID值
            doEdit(id);
        }</span>

这一步后,我们就可以写function doEdit函数了。


这个函数中的参数id就会是在数据库中真正要查找的ID值了,通过doEdit函数就可以直接传给后台修改该条记录了。


同样的Delete也是这样的。


(三)总结


做这个功能的时候,用了整整一天的时间,一天在思考的过程中,不快的重试和搜索相关的资料,将EasyUI的DataGrid每一个属性都研究了一遍,最后在师哥的提点下才做完的,想说:不动脑筋这活儿真干不了。真心是磨人的,一天没动地方,考验意志力呀。






评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值