Easy-UI 动态添加DataGrid的Toolbar按钮

  在前人的基础上进行的修改,不知道他是从哪里引用来的,所以没有粘贴引用地址。

  原代码不支持1.3.6。

  修改功能:

    1、如果之前没有添加过工具,用这个方法不能添加(已修复);

    2、估计是不支持1.3.6,所以在1.3.6下不能删除按钮(已修复);

    3、添加了在删除最有一个按钮后把按钮容器删除掉;

 

插件代码:

$.extend($.fn.datagrid.methods, {
    addToolbarItem: function (jq, items) {
        return jq.each(function () {
            var toolbar = $(this).parent().prev("div.datagrid-toolbar");
            //judge does it include toolbar object
            //if don't have add one 
            if (toolbar.length == 0) {
                toolbar = $("<div class="datagrid-toolbar"><table cellspacing="0" cellpadding="0"><tr></tr></table></div>").insertBefore($(this).parent());
            }

            var tr = toolbar.find("tr");
            for (var i = 0; i < items.length; i++) {
                var item = items[i];

                var btns = $(this).parent().prev("div.datagrid-toolbar").find("tr>td").children("a");

                var cbtn = null;

                btns.each(function () {
                    var text = null;
                    text = $(this).data().linkbutton.options.text;
                    if (text == item.text) {
                        cbtn = $(this);
                        text = null;
                        return false;
                    } else {
                        text = null;
                        return;
                    }
                });


                if (item === "-") {
                    $("<td><div class="datagrid-btn-separator"></div></td>").appendTo(tr);
                } else {
                    if (cbtn) {
                        cbtn[0].onclick = eval(item.handler || function () { });
                        cbtn.css("float", "left").linkbutton($.extend({}, item, { plain: true }));
                    } else {
                        var td = $("<td></td>").appendTo(tr);
                        var tool = $("<a href="javascript:void(0)"></a>").appendTo(td);
                        tool[0].onclick = eval(item.handler || function () { });
                        tool.linkbutton($.extend({}, item, { plain: true }));
                    }
                }
            }
            toolbar = null;
        });
    },
    removeToolbarItem: function (jq, param) {
        return jq.each(function () {
            var btns = $(this).parent().prev("div.datagrid-toolbar").find("tr>td").children("a");
            var cbtn = null;
            if (typeof param == "number") {
                cbtn = btns.eq(param);
            } else if (typeof param == "string") {
                var text = null;
                btns.each(function () {
                    text = $(this).data().linkbutton.options.text;
                    if (text == param) {
                        cbtn = $(this);
                        text = null;
                        return;
                    }
                });
            }
            if (cbtn) {
                var prev = cbtn.prev()[0];
                var next = cbtn.next()[0];
                if (prev && next && prev.nodeName == "DIV" && prev.nodeName == next.nodeName) {
                    $(prev).remove();
                } else if (next && next.nodeName == "DIV") {
                    $(next).remove();
                } else if (prev && prev.nodeName == "DIV") {
                    $(prev).remove();
                }
                cbtn.remove();
                cbtn = null;

                btns = $(this).parent().prev("div.datagrid-toolbar").find("tr>td").children("a");
                if (btns.length == 0) {
                    $(this).parent().prev("div.datagrid-toolbar").remove();
                }
            }
        });
    }
});

使用方法:

 $('#tt').datagrid("addToolbarItem",[{"text":"xxx"},"-",{"text":"xxxsss","iconCls":"icon-ok"}])
 $('#tt').datagrid("removeToolbarItem","GetChanges")//根据btn的text删除
 $('#tt').datagrid("removeToolbarItem",0)//根据下标删除
原文地址:https://www.cnblogs.com/qiumc/p/3873614.html