zoukankan      html  css  js  c++  java
  • 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)//根据下标删除
  • 相关阅读:
    Android读取url图片保存及文件读取
    Adroid解析json
    接口设计的 11 种原则
    检查并创建目录mkdir
    python 替换windows换行符为unix格式
    python中 __name__及__main()__的使用
    python中的urlencode与urldecode
    CentOS Docker 安装
    CentOS基础命令大全
    ubuntu更换阿里源
  • 原文地址:https://www.cnblogs.com/qiumc/p/3873614.html
Copyright © 2011-2022 走看看