JQuery绑定JSON数据至表格插件

 jquery.tableData.js源码如下:

/*

* Name:tableData

* Author: decel

* CreateDate: 2013-06-10

* ModifyDate:2013-06-11

* Desc: 绑定JSON数据至目标table,

* Example:

1.使用默认参数 

$('#tableId').tableData(datas);  

1.不使用默认参数 

var opts = { delete_callback: deleteItem };

$('#tableId').tableData(datas,opts);  

 

*/

(function($) {

 

    $.fn.tableData = function(datas, opts) {

 

        opts = jQuery.extend({

 

            key_name: "ID",     //行数据唯一标识属性名

 

            detail_visible: true,       //“查阅” 按钮是否可见

            detail_id: "detail",        //“查阅” 按钮是否可见

            detail_text: "查阅",        //“查阅” 按钮文本

            detail_href: "edit.aspx",   //详细页面地址

 

            delete_visible: true,                         //“删除”按钮是否可见

            delete_id: "delete",                          //“删除”按钮ID

            delete_text: "删除",                          //“删除”按钮文本

            delete_callback: function() { return false; }, //删除 调用事件

 

            row_even: "even",           //奇数行样式

            row_odd: "odd",             //偶数行样式

            row_hover: "hover"          //活动行样式

 

        }, opts || {});

 

        datas = eval(datas);        //格式化JSON

 

        var thisTable = $(this);

        var row = $(thisTable).find(" tr:eq(1)").clone();

 

        var len_col = $(row).find("td").length;

        var tempIds = "";

        for (var c = 0; c < len_col; c++) {

 

            var id = $(row).find("td:eq(" + c + ")").attr("ID");

 

            if (id != "" && id != undefined) {

                tempIds += id + "|";

            }

        }

 

        var column_ids = tempIds.split("|");

        len_col = column_ids.length - 1;

 

        $(thisTable).find(" tr:eq(1)").css("display""none");

        $(thisTable).find(" tr[name=ready]").remove(); //移除现有数据行

 

        $.each(datas, function(i, data) {

 

            var row = $(thisTable).find(" tr:eq(1)").clone();

 

            for (var c = 0; c < len_col; c++) {

 

                var key = column_ids[c];

                var value = data[column_ids[c]];

 

                $(row).find("#" + key).text(value);

 

                if (opts.detail_visible == true && key == opts.key_name) { //显示查阅按钮属性

                    var href = opts.detail_href + "?id=" + value;

                    $(row).find("#" + opts.detail_id).attr("href", href).html(opts.detail_text);

                }

                if (opts.delete_visible == true && key == opts.key_name) { //设置删除按钮属性及事件

 

                    $(row).find("#" + opts.delete_id).attr("id", value).html(opts.delete_text).bind("click"function() {

                        opts.delete_callback($(this).attr("id"));

                    });

                }

            }

 

            row.attr("name""ready");

            $(thisTable).append(row);             //追加新数据行

        })

        $(thisTable).find(" tr[name=ready]").show();  //显示新增的行

 

        $(thisTable).find("tr:even").addClass(opts.row_even); //设置样式

        $(thisTable).find("tr:odd").addClass(opts.row_odd);

 

        $(thisTable).find("tr").hover(

              function() {

                  $(this).addClass("hover");

              },

              function() {

                  $(this).removeClass("hover");

              }

        );

    }

})(jQuery);

 

 

页面表格格式示例:

    <table id="tb" style="line-height30pxmargin0px auto;" class="i_kucun_list"

            border="0" cellspacing="0" cellpadding="0" width="780">

            <tbody>

                <tr>

                    <th style="displaynone;">

                    </th>

                    <th>

                        用户名

                    </th>

                    <th>

                        邮箱

                    </th>

                    <th>

                        注册日期

                    </th>

                    <th>

                        登录次数

                    </th>

                    <th>

                        最后登录

                    </th>

                    <th>

                        操作

                    </th>

                    <th>

                        选择

                    </th>

                </tr>

                <tr style="displaynone;">  //根据此行(第二行)格式及单元格ID,加载对应的JSON数据

                    <td id="ID" style="displaynone;">

                    </td>

                    <td id="UserName">

                    </td>

                    <td id="Email">

                    </td>

                    <td id="TimeCreated">

                    </td>

                    <td id="LoginTimes">

                    </td>

                    <td id="TimeLastLogin">

                    </td>

                    <td>

                        <a href="#" id="detail" style="colorgreen;">查阅</a> |

                         <a href="#" id="delete" style="colorgreen;">删除</a>

                    </td>

                    <td>

                        <input type="radio" name="radio" />

                    </td>

                </tr>

            </tbody>

        </table>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值