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

  原代码不支持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)//根据下标删除

Easy-UI 动态添加DataGrid的Toolbar按钮的更多相关文章

  1. easy UI动态赋值

    1,首先怎么清除这个值 $('#filegrid').datagrid('loadData', { total: 0, rows: [] }); 2,清除后,通过post提交请求,怎么将新植穿进去,这 ...

  2. vue 使用 element ui动态添加表单

    html部分 <div class="hello"> <el-form :model="dynamicValidateForm" ref=&q ...

  3. PHP+Mysql+easyui点击左侧tree菜单对应表名右侧动态生成datagrid加载表单数据(二)

    关于tree菜单生成,参考我的另一篇博文地址tree 菜单 实现功能:点击左侧tree菜单中的table,右侧通过datagrid加载出该表对用的所有数据 难点:获取该表的所有列名,动态生成datag ...

  4. ASP.NET给Table动态添加删除行,并且得到控件的值

    ASP.NET给Table动态添加控件并且得到控件的值 由于跟老师做一个小的项目,可是我自己又不太懂js,所以一直为动态建立表格并且能动态的取值和赋值感到苦恼.起初在网上找到了一些js资源,解决了动态 ...

  5. easyui_动态添加隐藏toolbar按钮

    目标:动态添加隐藏toolbar,比如根据权限动态显示新增.修改.删除按钮等 思路:先初始化toolbar的所有按钮,加载datagrid其它信息,再根据权限显示隐藏toolbar按钮 步骤: 1.加 ...

  6. easy ui datagrid 增,删,改,查等基本操作

    如下图: ①列表信息图 ②添加信息图 ③修改信息图 html代码: <%@ Page Title="" Language="C#" MasterPageF ...

  7. JQuery Easy Ui dataGrid 数据表格 ---制作查询下拉菜单

    JQuery Easy Ui dataGrid 数据表格 数据表格 - DataGrid 继承$.fn.panel.defaults,使用$.fn.datagrid.defaults重载默认值.. 数 ...

  8. Jquery Easy UI Datagrid 上下移动批量保存数据

    DataGrid with 上下移动批量保存数据 通过前端变量保存修改数据集合,一次性提交后台执行 本想结合easyui 自带的$('#dg').datagrid('getChanges'); 方法来 ...

  9. 让Easy UI 的DataGrid直接内嵌的JSON对象,并重写form load 方法

    前言 我有这样的JSON对象 { "UserName": "jf", "UserPwd": "123456", &quo ...

随机推荐

  1. 初识Ruby

    以下为看<七周七语言>的第一课,找到答案,参考资料来源于http://book.douban.com/annotation/27705657/ Ruby API文档在这里http://ru ...

  2. SecondaryNamenode配置与NameNode故障恢复

    一.配置 1. 在masters文件中添加 Secondary节点的主机名. *注:masters文件用于指定secondary的主机而不是namenode,slaves用于指定datanode和ta ...

  3. Java Excel POI

    1.使用 String toFileName = "E:\\sheet1.xlsx"; String fromFileName = "E:\\sheet2.xlsx&qu ...

  4. HTML5 CSS3简要教程

    Web 设计师可以使用HTML4和CSS2.1完成一些很酷的东西.我们可以在不使用陈旧的基于table布局的基础上完成文档逻辑结构并创建内容丰富的网站.我们可以在不使用内联<font>和& ...

  5. 一款安卓ShowcaseView视图源码效果

    该源码是从源码天堂那边转载过来的,大家可以看看一下吧啊,一款安卓ShowcaseView视图源码效果,非常不错的,特别是在做引导时使用. 源码下载地址:http://code.662p.com/vie ...

  6. HTML新特性之一----canvas

    <canvas id="me"></canvas>//申请一个canvas标签    <script>                var c ...

  7. 软件工程 speedsnail 第二次冲刺4

    20150521 完成任务:划线第四天,能蜗牛遇到线能反弹,加了障碍物: 遇到问题: 问题1 有一个方向碰到线没有反弹 解决1 没有解决 明日任务: 完善问题1

  8. 导航控制器(UINavigationController)

    一.导航控制器基础 1.导航控制器的组成 i.中间视图 ii.导航栏 iii.工具栏 2.配置一个导航界面 a.配置一个导航界面最重要的部分就是配置被包含的视图控制器. b.当它所属的视图控制器在导航 ...

  9. css中li、a、span行内强制不换行

    li.a.span行内强制不换行:white-space:nowrap; 没有之前的效果 加上white-space:nowrap;后

  10. 前端基础 - Defer对象

    参考:http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html < ...