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)//根据下标删除

Easy-UI 动态添加DataGrid的Toolbar按钮,布布扣,bubuko.com

时间: 2024-12-04 12:16:56

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

easyui datagrid的toolbar 按钮可以像linkbutton一样设置使能状态

toolbar: [{ text: "添加", iconCls: 'icon-add', handler: addWeekPlan, id: 'WeekPlan_AddBtn' }] $('#WeekPlan_AddBtn' ).linkbutton('disable'); easyui datagrid的toolbar 按钮可以像linkbutton一样设置使能状态

easy UI动态赋值

1,首先怎么清除这个值 $('#filegrid').datagrid('loadData', { total: 0, rows: [] }); 2,清除后,通过post提交请求,怎么将新植穿进去,这可以通过post的success方法来获取 function displayplayingcms(value){ $("#dlg").dialog('open').dialog('setTitle','正在播放'); $("#dlg").empty(); //清空div

vue 使用 element ui动态添加表单

html部分 <div class="hello"> <el-form :model="dynamicValidateForm" ref="dynamicValidateForm" label-width="100px" class="demo-dynamic"> <el-form-item prop="email" label="邮箱"

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

关于tree菜单生成,参考我的另一篇博文地址tree 菜单 实现功能:点击左侧tree菜单中的table,右侧通过datagrid加载出该表对用的所有数据 难点:获取该表的所有列名,动态生成datagrid,并加载数据 解决办法: 使用tree菜单的onClick事件: $('#tree').tree( { url:'tree_getData.php', onClick:function(node){ //判断点击的节点是否是子节点是子节点就创建datagrid,否则就return打开这个节点

easyui_动态添加隐藏toolbar按钮

目标:动态添加隐藏toolbar,比如根据权限动态显示新增.修改.删除按钮等 思路:先初始化toolbar的所有按钮,加载datagrid其它信息,再根据权限显示隐藏toolbar按钮 步骤: 1.加载步骤 1 2 3 4 5 $(function() {     easyToolbarInit();     //初始化toolbar按钮     easyInitGrid({title:"管理",url:"/sa/add"});  //加载datagrid其它信息,

Jquery Easy UI初步学习(二)datagrid的使用

第一篇学的是做一个管理的外框,接着就是数据datagrid绑定了,这里我用asp.net mvc3来做的,主要就是熟悉属性.方法. 打开easyui的demo 就可以看到如下一段代码: 和上篇一样class="easyui-datagrid", data-options="...",这是一样的,其他我在网上查了查,并做了整理 DataGrid 属性 参数名 类型 描述 默认值 title string Datagrid面板的标题 null iconCls strin

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

如下图: ①列表信息图 ②添加信息图 ③修改信息图 html代码: 1 <%@ Page Title="" Language="C#" MasterPageFile="~/UI.Web/master/MemberMasterPage.Master" AutoEventWireup="true" CodeBehind="shop.ShopList.aspx.cs" Inherits="B2B_

EasyUI datagrid动态添加列

任务描述:根据用户选择时间段,生成列数据,如图 一.先定义好datagrid固定的数据列 <script type="text/javascript"> $(document).ready(function () { $("#td_Radio").datagrid({ striped: true, border: true, iconCls: 'icon-edit', //图标 singleSelect: true, autoRowHeight: tru

jQuery Easy UI LinkButton(按钮)组件

LinkButton(按钮)组件,easyui基础组件之一 示例: <!DOCTYPE html> <html> <head> <title>jQuery Easy UI</title> <meta charset="UTF-8" /> <script type="text/javascript" src="easyui/jquery.min.js"></s