分页 排序 表格 多功能

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="Test_Default5" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
    <script src="../Js/jquery-1.7.2.min.js" type="text/javascript"></script>
    <style type="text/css">
        body, html
        {
            border: 0px;
            margin: 0px;
            padding: 0px;
            overflow: hidden;
        }
        .lzyPager
        {
            background-color: #E9F1F3;
            height: 26px;
            line-height: 26px;
            font-size: 16px;
            font-family: "Helvetica Neue" ,Helvetica,STheiti,微软雅黑,宋体,Arial,Tahoma,sans-serif,serif;
            padding-top: 4px;
            padding-bottom: 4px;
        }
        .lzyPager ul
        {
            margin: 0px;
            padding: 0px;
            list-style: none;
        }
        .lzyPager li
        {
            margin-left: 2px;
            padding: 0px;
            float: left;
            cursor: pointer;
            height: 30px;
            line-height: 30px;
        }
        .lzyPager li span
        {
            margin: 0px;
            padding: 0px;
            border: none;
        }
        .lzyTable
        {
            overflow: hidden;
        }
        
        .lzyTable table
        {
            border: none;
            border-collapse: collapse;
            margin: 0px;
            padding: 0px;
        }
        .lzyTable td, th
        {
            border: 1px solid #D1D1D4;
            margin: 0px;
            padding: 0px;
            font-size: 14px;
        }
        .lzyTable .tbody_tr_even
        {
            background-color: #F6F6F6;
            height: 20px;
            line-height: 20px;
        }
        .lzyTable .tbody_tr_odd
        {
            background-color: #FFFFFF;
            height: 20px;
            line-height: 20px;
        }
        .lzyTable .tbody_tr_cell
        {
            color: Red;
            font-family: "Helvetica Neue" ,Helvetica,STheiti,微软雅黑,宋体,Arial,Tahoma,sans-serif,serif;
        }
        .lzyTable .tbody_tr_cell2
        {
            color: green;
            font-family: "Helvetica Neue" ,Helvetica,STheiti,微软雅黑,宋体,Arial,Tahoma,sans-serif,serif;
        }
        .lzyTable .tbody_tr_cell3
        {
            color: blue;
            font-family: "Helvetica Neue" ,Helvetica,STheiti,微软雅黑,宋体,Arial,Tahoma,sans-serif,serif;
        }
    </style>
    <script type="text/javascript">
        (function ($) {
            this.currentData = null;
            this._theadWidth = 0;
            $.fn.lzyplugs = function (options) {
                var opts = $.extend({}, $.fn.defaults, options);
                var _containerTo = $(opts.containerTo); //插件容器
                var _tableTo = null;
                var _pagerTo = null;
                if ((typeof opts.tableTo === "string") || (typeof $(opts.tableTo) === "object") && opts.tableTo.length > 0 && $(opts.tableTo).length > 0) {
                    opts.tableTo = typeof opts.tableTo == 'string' ? $(opts.tableTo) : opts.tableTo;
                    opts.tableTo.addClass(opts.tableClass);
                    if (_containerTo.width() != opts.tableWidth) {
                        opts.tableTo.width(_containerTo.width() + "px");
                    } else {
                        opts.tableTo.width(opts.tableWidth + "px");
                    }
                    opts.tableTo.height(_containerTo.height() - opts.pagerHeight + "px");
                }
                if (typeof opts.pagerTo === "string" && opts.pagerTo.length > 0 && $(opts.pagerTo).length > 0 && typeof $(opts.pagerTo) === "object") {
                    opts.pagerTo = typeof opts.pagerTo == 'string' ? $(opts.pagerTo) : opts.pagerTo;
                    opts.pagerTo.addClass(opts.pagerClass);
                    if (_containerTo.width() != opts.tableWidth) {
                        opts.pagerTo.width(_containerTo.width() + "px");
                    } else {

                        opts.pagerTo.width(opts.pagerWidth + "px");
                    }
                    opts.pagerTo.height(opts.pagerHeight + "px");
                }
                loadTableCount();

                function InitPager() {
                    var _element = opts.pagerTo.empty();
                    if (typeof opts.pagerSize != "number" || opts.pagerSize == 0) opts.pagerSize = 10;
                    var _p = parseInt(opts.pagerCount % opts.pagerSize) <= 0 ? parseInt(opts.pagerCount / opts.pagerSize) : parseInt(parseInt(opts.pagerCount / opts.pagerSize) + 1);
                    if (_p > 1) {
                        var _pager_ul = $("<ul>").data({ "pagerCount": opts.pagerCount, "p": _p }).appendTo(_element);
                        var _pager_li_current = $("<li>").html("<span>当前第<span style='color:red'>" + opts.pagerIndex + "</span></span>页,每页显示<span style='color:red'>" + opts.pagerSize + "</span>条").appendTo(_pager_ul);
                        var _pager_li_first = $("<li>").click(function () {
                            loadTableCount();
                            if (typeof opts.pagerIndex === "number" && parseInt(opts.pagerIndex) > 1) {
                                opts.pagerIndex = 1;
                                _pager_li_current.html("<span>当前第<span style='color:red'>" + opts.pagerIndex + "</span></span>页,每页显示" + opts.pagerSize + "条");
                            }
                        }).html(opts.pagerFirst).appendTo(_pager_ul);

                        var _pager_li_prev = $("<li>").click(function () {
                            loadTableCount();
                            if (typeof opts.pagerIndex === "number" && parseInt(opts.pagerIndex) > 1) {
                                opts.pagerIndex = opts.pagerIndex - 1;
                                _pager_li_current.html("<span>当前第<span style='color:red'>" + opts.pagerIndex + "</span></span>页,每页显示" + opts.pagerSize + "条");
                            }
                        }).html(opts.pagerPrev).appendTo(_pager_ul);

                        var _pager_li_next = $("<li>").click(function () {
                            loadTableCount();
                            if (typeof opts.pagerIndex === "number" && parseInt(opts.pagerIndex) < _p) {
                                opts.pagerIndex = opts.pagerIndex + 1;
                                _pager_li_current.html("<span>当前第<span style='color:red'>" + opts.pagerIndex + "</span></span>页,每页显示" + opts.pagerSize + "条");
                            }
                        }).html(opts.pagerNext).appendTo(_pager_ul);

                        var _pager_li_last = $("<li>").click(function () {
                            loadTableCount();
                            if (typeof opts.pagerIndex === "number" && parseInt(opts.pagerIndex) < _p) {
                                opts.pagerIndex = _p;
                                _pager_li_current.html("<span>当前第<span style='color:red'>" + opts.pagerIndex + "</span></span>页,每页显示" + opts.pagerSize + "条");
                            }
                        }).html(opts.pagerLast).appendTo(_pager_ul);

                        var _pager_li_desc = $("<li><span>总共:<span style='color:red'>" + opts.pagerCount + "</span>条,<span style='color:red'>" + _p + "</span>页</span></li>").appendTo(_pager_ul);
                        var _pager_li_goinput = $("<li>").appendTo(_pager_ul);
                        var _pager_li_go_input = $("<div id='txtgo' >").attr("contentEditable", "true").css({ "width": "50px", "outline": "none", "border": "1px solid #D1D1D4", "padding-left": "2px", "height": "24px", "line-height": "24px" }).appendTo(_pager_li_goinput);
                        var _pager_li_goa = $("<li>").appendTo(_pager_ul);
                        var _pager_li_btngo = $("<div>").css({ "border": "1px solid #D1D1D4", "height": "24px", "line-height": "24px", "padding-left": "2px", "padding-right": "2px" }).text("GO").click(function () {
                            var gop = $('#txtgo').text();
                            loadTableCount();
                            if (gop != null && $.trim(gop) != "" && parseInt(gop) > 0) {
                                if (parseInt(gop) > _p) {
                                    alert("超过总页数");
                                } else {
                                    if (opts.pagerIndex != parseInt(gop)) {
                                        opts.pagerIndex = parseInt(gop);
                                        _pager_li_current.html("<span>当前第<span style='color:red'>" + opts.pagerIndex + "</span></span>页,每页显示" + opts.pagerSize + "条");
                                    }
                                }
                            }
                        }).appendTo(_pager_li_goa);
                    }
                    else {
                        opts.pagerTo.html("当前只有" + opts.pagerCount + "条数据");
                    }
                    loadTableData();
                };

                function CreateTable(tbodyData) {

                    opts.tableTo.empty();
                    this.currentData = tbodyData;
                    var _tbl = $("<table id=tbl >"); //创建表格对象
                    var _thead = $("<thead></thead>").appendTo(_tbl); //表头对象
                    var _obj_thead_tr = CreateTableHead();
                    _obj_thead_tr.appendTo(_thead);
                    _tbl.width(this._theadWidth);
                    var _tbody = $("<tbody></tbody>").appendTo(_tbl); //创建标题对象
                    var _tddata = eval(tbodyData); //获取加载的数据
                    $.each(_tddata, function (index, value) {
                        CreateTableRow(index, value).appendTo(_tbody);
                    });
                    if (opts.stripeRows) {
                        _tbody.find("tr:even").addClass("tbody_tr_even");
                        _tbody.find("tr:odd").addClass("tbody_tr_odd");
                    }
                    _tbl.appendTo(opts.tableTo);
                    FixTable("tbl", 1, opts.tableTo.width(), opts.tableTo.height());
                    if (_tbl.width() <= $("#tbl_tableData").width()) {
                        $("#tbl_tableData").css("overflow-x", "hidden");
                    }
                    if (_tbl.height() <= $("#tbl_tableData").height()) {
                        $("#tbl_tableData").css("overflow-y", "hidden");
                    }
                };
                //排序
                function sortData(code, sorttype, tbodyData) {
                    var strDataType = "string";
                    var currData = eval(this.currentData);
                    if (currData && currData.length > 0) {
                        //获取排序字段的数据类型
                        $.each(opts.theadData, function (i, obj) {
                            if (String(i).toLowerCase() == String(code).toLowerCase()) {
                                if (obj.type) {
                                    strDataType = String(obj.type).toLowerCase();
                                }
                                else {
                                    strDataType = "string";
                                }
                            }
                        });
                        var temp;
                        if (sorttype == "asc") {
                            for (var i = 1; i < currData.length; i++) {
                                for (var j = currData.length - 1; j >= i; j--) {
                                    if (strDataType == "int" || strDataType == "float") {
                                        if ((currData[j][code] - 0) < (currData[j - 1][code] - 0)) {
                                            temp = currData[j - 1];
                                            currData[j - 1] = currData[j];
                                            currData[j] = temp;
                                        }
                                    }
                                    else if (strDataType == "datetime") {
                                        if (StringToDate(currData[j][code]) < StringToDate(currData[j - 1][code])) {
                                            temp = currData[j - 1];
                                            currData[j - 1] = currData[j];
                                            currData[j] = temp;
                                        }
                                    }
                                    else {
                                        if (String(currData[j][code]).localeCompare(String(currData[j - 1][code])) <= -1) {
                                            temp = currData[j - 1];
                                            currData[j - 1] = currData[j];
                                            currData[j] = temp;
                                        }
                                    }
                                }
                            }
                        }
                        else {
                            for (var i = 1; i < currData.length; i++) {
                                for (var j = currData.length - 1; j >= i; j--) {
                                    if (strDataType == "int" || strDataType == "float") {
                                        if ((currData[j][code] - 0) > (currData[j - 1][code] - 0)) {
                                            temp = currData[j - 1];
                                            currData[j - 1] = currData[j];
                                            currData[j] = temp;
                                        }
                                    }
                                    else if (strDataType == "datetime") {
                                        //if (typeof (currData[j][code]) == "string" && typeof (currData[j - 1][code]) == "string")
                                        if (StringToDate(currData[j][code]) > StringToDate(currData[j - 1][code])) {
                                            temp = currData[j - 1];
                                            currData[j - 1] = currData[j];
                                            currData[j] = temp;
                                        }
                                    }
                                    else {
                                        if (String(currData[j][code]).localeCompare(String(currData[j - 1][code])) >= 1) {
                                            temp = currData[j - 1];
                                            currData[j - 1] = currData[j];
                                            currData[j] = temp;
                                        }
                                    }
                                }
                            }
                        }
                        this.currentData = currData;
                    }
                    CreateTable(currData);
                };

                function CreateTableHead() {
                    _theadWidth = 0;
                    var _thdata = eval(opts.theadData);
                    var _thead_tr = $("<tr>");

                    if (typeof (opts.checkEnabled) != "undefined" && typeof (opts.checkEnabled) == "boolean") {
                        if (opts.checkEnabled) {
                            CreateCheckBox().attr("name", "cball").appendTo($("<th>").width(20).appendTo(_thead_tr));
                            _theadWidth += 22;
                        }
                    }
                    if (typeof (opts.checkEnabled) != "undefined" && typeof (opts.checkEnabled) == "object") {
                        if (eval(opts.checkEnabled).enabled) {
                            CreateCheckBox().attr("name", "cball").appendTo($("<th>").width(eval(opts.checkEnabled).width).appendTo(_thead_tr));
                            _theadWidth += parseInt(eval(opts.checkEnabled).width) + 2;
                        }
                    }
                    if (typeof (opts.numberEnabled) != "undefined" && typeof (opts.numberEnabled) == "boolean") {
                        if (opts.numberEnabled) {
                            $("<th>").text("序号").width(30).appendTo(_thead_tr);
                            _theadWidth += 32;
                        }
                    }
                    if (typeof (opts.numberEnabled) != "undefined" && typeof (opts.numberEnabled) == "object") {
                        if (eval(opts.numberEnabled).enabled) {
                            $("<th>").text(eval(opts.numberEnabled).name).width(eval(opts.numberEnabled).width).appendTo(_thead_tr);
                            _theadWidth += parseInt(eval(opts.numberEnabled).width) + 2;
                        }
                    }
                    $.each(_thdata, function (key, value) {
                        var _th = $("<th>");
                        if (!value.hide) {
                            _theadWidth += parseInt(value.width) + 2;
                        }
                        else {
                            _th.hide();
                        }
                        if (value.allowsort) {
                            _th.click(function () {
                                sortData(key, value.sorttype, "");
                                if (value.sorttype == "asc") {
                                    opts.theadData[key].sorttype = "desc";
                                } else {
                                    opts.theadData[key].sorttype = "asc";
                                }
                            });
                        }
                        _th.attr(key, value.name).width(value.width).html(unescape(value.name)).appendTo(_thead_tr);
                    });

                    if (typeof (opts.editEnabled) != "undefined" && typeof (opts.editEnabled) == "boolean") {
                        if (opts.editEnabled) {
                            $("<th>").text("编辑").width(30).appendTo(_thead_tr);
                            _theadWidth += 32;
                        }
                    }
                    if (typeof (opts.editEnabled) != "undefined" && typeof (opts.editEnabled) == "object") {
                        if (eval(opts.editEnabled).enabled) {
                            $("<th>").text(eval(opts.editEnabled).name).width(eval(opts.editEnabled).width).appendTo(_thead_tr);
                            _theadWidth += parseInt(eval(opts.editEnabled).width) + 2;
                        }
                    }
                    if (typeof (opts.delEnabled) != "undefined" && typeof (opts.delEnabled) == "boolean") {
                        if (opts.delEnabled) {
                            $("<th>").text("删除").width(30).appendTo(_thead_tr);
                            _theadWidth += 32;
                        }
                    }
                    if (typeof (opts.delEnabled) != "undefined" && typeof (opts.delEnabled) == "object") {
                        if (eval(opts.delEnabled).enabled) {
                            $("<th>").text(eval(opts.delEnabled).name).width(eval(opts.delEnabled).width).appendTo(_thead_tr);
                            _theadWidth += parseInt(eval(opts.delEnabled).width) + 2;
                        }
                    }
                    if (typeof (opts.detailEnabled) != "undefined" && typeof (opts.detailEnabled) == "boolean") {
                        if (opts.detailEnabled) {
                            $("<th>").text("详细").width(30).appendTo(_thead_tr);
                            _theadWidth += 32;
                        }
                    }
                    if (typeof (opts.detailEnabled) != "undefined" && typeof (opts.detailEnabled) == "object") {
                        if (eval(opts.detailEnabled).enabled) {
                            $("<th>").text(eval(opts.detailEnabled).name).width(eval(opts.detailEnabled).width).appendTo(_thead_tr);
                            _theadWidth += parseInt(eval(opts.detailEnabled).width) + 2;
                        }
                    }
                    if (typeof (opts.columnDefine) != "undefined" && typeof (opts.columnDefine) == "boolean") {
                        if (opts.columnDefine) {
                            $("<th>").text("自定义").width(40).appendTo(_thead_tr);
                            _theadWidth += 42;
                        }
                    }
                    if (typeof (opts.columnDefine) != "undefined" && typeof (opts.columnDefine) == "object") {
                        if (eval(opts.columnDefine).enabled) {
                            $.each(opts.columnDefine.method(), function (index, value) {
                                value.appendTo(_thead_tr);
                                _theadWidth += parseInt(value.width) + 2;
                            });
                        }
                    }
                    //opts.tableTo.width(_theadWidth);

                    return _thead_tr;
                };

                function CreateTableFoot() {
                    return false;
                };

                function CreateCheckBox() {
                    return $("<input type='checkbox' />");
                };

                function CreateNumber() {

                };
                function CreateTableRow(index, rowData) {
                    //确认是否加入复选框
                    //确认是否加入序列 列
                    //确认隐藏的列
                    //确认还需要加入多少列,并且加入的内容是什么,由外部确认
                    var _tbody_tr = $("<tr>");
                    if (typeof (opts.checkEnabled) != "undefined" && typeof (opts.checkEnabled) == "boolean") {
                        if (opts.checkEnabled) {
                            CreateCheckBox().attr("name", "cbcell").appendTo($("<td>").width(20).appendTo(_tbody_tr));
                        }
                    }
                    if (typeof (opts.checkEnabled) != "undefined" && typeof (opts.checkEnabled) == "object") {
                        if (eval(opts.checkEnabled).enabled) {
                            CreateCheckBox().attr("name", "cbcell").appendTo($("<td>").width(eval(opts.checkEnabled).width).appendTo(_tbody_tr));
                        }
                    }

                    if (typeof (opts.numberEnabled) != "undefined" && typeof (opts.numberEnabled) == "boolean") {
                        if (opts.numberEnabled) {
                            $("<td>").text(index + 1).width(30).appendTo(_thead_tr);
                        }
                    }
                    if (typeof (opts.numberEnabled) != "undefined" && typeof (opts.numberEnabled) == "object") {
                        if (eval(opts.numberEnabled).enabled) {
                            $("<td>").text(index + 1).width(eval(opts.numberEnabled).width).appendTo(_tbody_tr);
                        }
                    }
                    var _thdata = eval(opts.theadData);
                    $.each(rowData, function (key, value) {
                        var _td = $("<td>");
                        if (_thdata[key].hide) {
                            _td.hide();
                        }
                        if (typeof (_thdata[key].render) == "string") {
                            _td.addClass(_thdata[key].render);
                        }
                        _td.attr(key, value).html(unescape(value)).appendTo(_tbody_tr);
                    });

                    if (typeof (opts.editEnabled) != "undefined" && typeof (opts.editEnabled) == "boolean") {
                        if (opts.editEnabled) {
                            $("<td>").click(function () {
                                opts.editEnabled.editHanlder();
                            }).text("编辑").appendTo(_tbody_tr);

                        }
                    }
                    if (typeof (opts.editEnabled) != "undefined" && typeof (opts.editEnabled) == "object") {
                        if (eval(opts.editEnabled).enabled) {
                            $("<td>").click(function () {
                                opts.editEnabled.editHanlder();
                            }).text(eval(opts.editEnabled).name).appendTo(_tbody_tr);
                        }
                    }
                    if (typeof (opts.delEnabled) != "undefined" && typeof (opts.delEnabled) == "boolean") {
                        if (opts.delEnabled) {
                            $("<td>").click(function () {
                                opts.delEnabled.delHanlder();
                            }).text("删除").appendTo(_tbody_tr);
                        }
                    }
                    if (typeof (opts.delEnabled) != "undefined" && typeof (opts.delEnabled) == "object") {
                        if (eval(opts.delEnabled).enabled) {
                            $("<td>").click(function () {
                                opts.delEnabled.delHanlder();
                            }).text(eval(opts.delEnabled).name).appendTo(_tbody_tr);
                        }
                    }
                    if (typeof (opts.detailEnabled) != "undefined" && typeof (opts.detailEnabled) == "boolean") {
                        if (opts.detailEnabled) {
                            $("<td>").click(function () {
                                opts.detailEnabled.detailHanlder(_tbody_tr);
                            }).text("详细").appendTo(_tbody_tr);
                        }
                    }
                    if (typeof (opts.detailEnabled) != "undefined" && typeof (opts.detailEnabled) == "object") {
                        if (eval(opts.detailEnabled).enabled) {
                            $("<td>").click(function () {
                                opts.detailEnabled.detailHanlder(_tbody_tr);
                            }).text(eval(opts.detailEnabled).name).appendTo(_tbody_tr);
                        }
                    }
                    if (typeof (opts.columnDefine) != "undefined" && typeof (opts.columnDefine) == "boolean") {
                        if (opts.columnDefine) {
                            $("<td>").text("自定义").width(40).appendTo(_tbody_tr);
                        }
                    }
                    if (typeof (opts.columnDefine) != "undefined" && typeof (opts.columnDefine) == "object") {
                        if (eval(opts.columnDefine).enabled) {
                            $.each(opts.columnDefine.method(), function (index, value) {
                                value.appendTo(_tbody_tr);
                            });
                        }
                    }
                    return _tbody_tr;
                }
                function loadTableData() {
                    //返回一个json数据
                    $.ajax({
                        async: false,
                        data: "{pageindex:'" + opts.pagerIndex + "',pagewhere:'1=1',pagesort:'autoid',pagesize:'" + opts.pagerSize + "'}",
                        url: '../Modules/MergeContacts/MergeContactWebService.asmx/GetAllPersonAddrList',
                        type: 'post',
                        dataType: 'json',
                        contentType: "application/json;charset=utf-8",
                        beforeSend: function () {
                            opts.tableTo
                        },
                        success: function (result) {
                            if (typeof (result) == "object" && result.d != null && result.d != "" && eval(result.d).length > 0) {
                                data = result.d;
                                //这里回调一个数据处理的方法
                                CreateTable(data);
                            } else {

                            }
                        },
                        error: function () {
                        }
                    });
                };
                function loadTableCount() {
                    //使用正则表达式判断 url参数的格式正确性
                    //判断where是否为json正确格式
                    //返回一个总数

                    $.ajax({
                        type: "post",
                        url: opts.pagerCountUrl,
                        data: opts.pagerWhere,
                        dataType: "json",
                        contentType: "application/json;charset=utf-8",
                        beforeSend: function () {
                            //dosomething
                        },
                        complete: function () {
                            //dosomething
                        },
                        success: function (result) {
                            var _count = result.d;
                            //if(_count!=
                            if (this.CurrentCount != _count) {
                                opts.pagerCount = _count;
                                InitPager();
                            }
                        },
                        error: function (XMLHttpRequest, textStatus, errorThrown) {
                            alert(XMLHttpRequest.status);
                            alert(textStatus);
                            alert(errorThrown);
                        }
                    });
                };

                function debounce(callback, delay, context) {
                    if (typeof (callback) !== "function") { return; }
                    delay = delay || 150;
                    context = context || null;
                    var timeout;
                    var runIt = function () {
                        callback.apply(context);
                    };
                    return (function () {
                        window.clearTimeout(timeout);
                        timeout = window.setTimeout(runIt, delay);
                    });
                };
                var winResizeHandler = function (event) {
                    opts.lzyOnResize(); //回调设置父容器宽高问题
                    var _pWidth = $(opts.containerTo).width();
                    var _pHeight = $(opts.containerTo).height();
                    $("#lzyTable").width(_pWidth).height(_pHeight - opts.pagerHeight);
                    $("#lzyPager").width(_pWidth);
                    CreateTable(this.currentData);
                };
                $(window).resize(debounce(winResizeHandler, 150));
            };
            $.fn.defaults = {
                containerTo: "#lzyContainer",
                pagerTo: "#lzyPager", //分页容器
                pagerWidth: 800, //分页容器宽度
                pagerHeight: 30, //分页高度
                pagerClass: 'lzyPager', //分页样式
                pagerFirst: '首  页', //
                pagerNext: '下一页',
                pagerPrev: '上一页',
                pagerLast: '尾  页',
                pagerCount: 0, //总数
                pagerSize: 10, //单页显示多少条
                pagerIndex: 1, //默认起始页
                pagerWhere: null, //分页条件
                pagerCountUrl: null, //获取分页总数的方法路径
                tableTo: "#lzyTable", //表格容器
                tableClass: "lzyTable", //表格容器样式
                tableHeight: 300, //表格容器高度
                tableWidth: 1300, //表格容器宽度
                checkEnabled: true, //表格是否启用复选框
                numberEnabled: { "enabled": false, "name": "序号", "width": "30" }, //是否表格启用序号列
                editEnabled: { "enabled": false, "name": "编辑", "width": "30", "editHanlder": function (tr) {
                    alert("编辑");
                    return false;
                }
                }, //是否表格启用编辑列
                delEnabled: { "enabled": false, "name": "删除", "width": "30", "delHanlder": function (tr) {
                    alert("删除");
                    return false;
                }
                }, //是否表格启用删除列
                detailEnabled: { "enabled": true, "name": "详细", "width": "30", "detailHanlder": function (tr) {
                    alert(tr.index());
                    return false;
                }
                }, //是否表格启用详细列
                columnDefine: { "enabled": false, "name": "自定义列集合", "width": "30", "method": function () {
                    var columnlist = new Array();
                    columnlist.push($("<td id=2>").text(this.name).width(this.width));
                    columnlist.push($("<td id=3>").text(this.name + "3").width(this.width));
                    columnlist.push($("<td id=4>").text(this.name + "4").width(this.width));
                    return columnlist;
                }
                },
                stripeRows: true, //是否启用间隔行样式
                theadData: {}, //表格表头显示的内容及宽度等信息,格式为:{"AutoID":{"name":"编号","width":"80","hide":"true"},"UserName":{"name":"用户名","width":"200","hide":"false"}};
                tableDataUrl: null, //获取总数的方法
                tableWhere: null,
                callback: function () {
                    return false;
                },
                lzyOnResize: function () {
                    return false;
                }
            };
            //字符串转换为js中的Date对象
            function StringToDate(str) {
                var arr = str.split(" ");
                if (str.indexOf("/") > -1) {
                    var arr1 = arr[0].split("/");
                }
                else {
                    var arr1 = arr[0].split("-");
                }

                if (arr1.length <= 2) {
                    arr1[2] = 1;
                }
                if (str.indexOf(":") > -1) {
                    var arr2 = arr[1].split(":");
                    return new Date(arr1[0], arr1[1], arr1[2], arr2[0], arr2[1], arr2[2]);
                }
                else {
                    return new Date(arr1[0], arr1[1], arr1[2]);
                }
            };
            function FixTable(TableID, FixColumnNumber, width, height) {
                /// <summary>
                ///     锁定表头和列
                ///     <para> sorex.cnblogs.com </para>
                /// </summary>
                /// <param name="TableID" type="String">
                ///     要锁定的Table的ID
                /// </param>
                /// <param name="FixColumnNumber" type="Number">
                ///     要锁定列的个数
                /// </param>
                /// <param name="width" type="Number">
                ///     显示的宽度
                /// </param>
                /// <param name="height" type="Number">
                ///     显示的高度
                /// </param>
                //                if ($("#" + TableID + "_tableLayout").length != 0) {
                //                    $("#" + TableID + "_tableLayout").before($("#" + TableID));
                //                    $("#" + TableID + "_tableLayout").empty();
                //                }
                //                else {
                //                    $("#" + TableID).after("<div id='" + TableID + "_tableLayout' style='overflow:hidden;height:" + height + "px; width:" + width + "px;'></div>");
                //                }
                var oldtable = $("#" + TableID);
                //$("#lzyTable").empty();
                $('<div id="' + TableID + '_tableFix"></div>' + '<div id="' + TableID + '_tableHead"></div>' + '<div id="' + TableID + '_tableColumn"></div>' + '<div id="' + TableID + '_tableData"></div>').appendTo($("#lzyTable"));

                var tableFixClone = oldtable.clone(true);
                tableFixClone.attr("id", TableID + "_tableFixClone");
                $("#" + TableID + "_tableFix").append(tableFixClone);
                var tableHeadClone = oldtable.clone(true);
                tableHeadClone.attr("id", TableID + "_tableHeadClone");
                $("#" + TableID + "_tableHead").append(tableHeadClone);
                var tableColumnClone = oldtable.clone(true);
                tableColumnClone.attr("id", TableID + "_tableColumnClone");
                $("#" + TableID + "_tableColumn").append(tableColumnClone);
                $("#" + TableID + "_tableData").append(oldtable);
                $("#" + TableID + "_tableLayout table").each(function () {
                    $(this).css("margin", "0");
                });
                var HeadHeight = $("#" + TableID + "_tableHead thead").height();
                HeadHeight += 2;
                $("#" + TableID + "_tableHead").css("height", HeadHeight);
                $("#" + TableID + "_tableFix").css("height", HeadHeight);
                var ColumnsWidth = 0;
                var ColumnsNumber = 0;
                $("#" + TableID + "_tableColumn tr:last td:lt(" + FixColumnNumber + ")").each(function () {
                    ColumnsWidth += $(this).outerWidth(true);
                    ColumnsNumber++;
                });
                ColumnsWidth += 2;
                if ($.browser.msie) {
                    switch ($.browser.version) {
                        case "7.0":
                            if (ColumnsNumber >= 3) ColumnsWidth--;
                            break;
                        case "8.0":
                            if (ColumnsNumber >= 2) ColumnsWidth--;
                            break;
                    }
                }
                $("#" + TableID + "_tableColumn").css("width", ColumnsWidth);
                $("#" + TableID + "_tableFix").css("width", ColumnsWidth);
                $("#" + TableID + "_tableData").scroll(function () {
                    $("#" + TableID + "_tableHead").scrollLeft($("#" + TableID + "_tableData").scrollLeft());
                    $("#" + TableID + "_tableColumn").scrollTop($("#" + TableID + "_tableData").scrollTop());
                });
                $("#" + TableID + "_tableFix").css({ "overflow": "hidden", "position": "relative", "z-index": "50", "background-color": "Silver" });
                $("#" + TableID + "_tableHead").css({ "overflow": "hidden", "width": width - 17, "position": "relative", "z-index": "45", "background-color": "Silver" });
                $("#" + TableID + "_tableColumn").css({ "overflow": "hidden", "height": height - 17, "position": "relative", "z-index": "40", "background-color": "Silver" });
                $("#" + TableID + "_tableData").css({ "overflow": "scroll", "width": width, "height": height, "position": "relative", "z-index": "35" });
                if ($("#" + TableID + "_tableHead").width() > $("#" + TableID + "_tableFix table").width()) {
                    $("#" + TableID + "_tableHead").css("width", $("#" + TableID + "_tableFix table").width());
                    $("#" + TableID + "_tableData").css("width", $("#" + TableID + "_tableFix table").width() + 17);
                }
                if ($("#" + TableID + "_tableColumn").height() > $("#" + TableID + "_tableColumn table").height()) {
                    $("#" + TableID + "_tableColumn").css("height", $("#" + TableID + "_tableColumn table").height());
                    $("#" + TableID + "_tableData").css("height", $("#" + TableID + "_tableColumn table").height() + 17);
                }
                $("#" + TableID + "_tableFix").offset($("#lzyTable").offset());
                $("#" + TableID + "_tableHead").offset($("#lzyTable").offset());
                $("#" + TableID + "_tableColumn").offset($("#lzyTable").offset());
                $("#" + TableID + "_tableData").offset($("#lzyTable").offset());
            }

        })(jQuery);
        $(function () {
            $("#lzyContainer").width($(window).width());
            $("#lzyContainer").height($(window).height());
            var theadData = {
                "autoid": { "name": "系统编号", "width": "70", "hide": true, "allowsort": true, "type": "int", "sorttype": "asc" },
                "cName": { "name": "姓名", "width": "300", "hide": false, "render": "tbody_tr_cell", "allowsort": true, "type": "string", "sorttype": "asc" },
                "nPlace": { "name": "籍贯", "width": "100", "hide": false, "render": "tbody_tr_cell2" },
                "cUnit": { "name": "现工作单位", "width": "200", "hide": false, "render": "tbody_tr_cell3" },
                "cClass": { "name": "现部门", "width": "100", "hide": false },
                "cDuty": { "name": "现职务", "width": "100", "hide": false }
            };
            $.fn.lzyplugs({
                containerTo: "#lzyContainer",
                pagerTo: "#lzyPager",
                pagerSize: 10,
                pagerWhere: '{ "pagewhere": "1=1" }',
                pagerCountUrl: "../Modules/MergeContacts/MergeContactWebService.asmx/GetPersonAddrListCount",
                tableTo: '#lzyTable',
                theadData: theadData,
                tableHeight: 500,
                tableDataUrl: "../Modules/MergeContacts/MergeContactWebService.asmx/GetAllPersonAddrList",
                tableWhere: '{"pageindex":"1","pagewhere":"1=1","pagesort":"autoid","pagesize":"10"}',
                lzyOnResize: function () {
                    $("#lzyContainer").width($(window).width());
                    $("#lzyContainer").height($(window).height());
                }
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div id="lzyContainer">
        <div id="lzyTable">
        </div>
        <div id="lzyPager">
        </div>
    </div>
    </form>
</body>
</html>

 

"[{"autoid":"26824","cName":"黄志臻","nPlace":"广东佛山","cUnit":"力维门锁","cClass":"","cDuty":"经理"},{"autoid":"26823","cName":"李江桥","nPlace":"江西","cUnit":"珠海卓凡集团","cClass":"设计部","cDuty":"设计师"},{"autoid":"26822","cName":"朱梨萍","nPlace":"新疆","cUnit":"广州森苗环保材料有限公司","cClass":"","cDuty":"总经理"},{"autoid":"26821","cName":"李君伍","nPlace":"河南","cUnit":"深圳骆丹酒店设计公司","cClass":"采购部","cDuty":"采购主管"},{"autoid":"26820","cName":"朱国峰(坚豪(澳门)工程有限公司工程部经理)","nPlace":"澳门","cUnit":"坚豪(澳门)工程有限公司","cClass":"工程部","cDuty":"经理"},{"autoid":"26819","cName":"何蕾","nPlace":"四川","cUnit":"深圳富士电梯公司","cClass":"营销部","cDuty":"经理"},{"autoid":"26818","cName":"王余峰","nPlace":"江西","cUnit":"佛山星艺装饰设计公司","cClass":"设计工作室","cDuty":"设计总监"},{"autoid":"26817","cName":"廖庆华","nPlace":"湖南","cUnit":"广州江海机电设备有限公司","cClass":"营销部","cDuty":"经理"},{"autoid":"26816","cName":"邱小拔","nPlace":"广东","cUnit":"广州丽斯顿设计","cClass":"","cDuty":"设计总监"},{"autoid":"26815","cName":"周俊宏","nPlace":"广东省惠来县","cUnit":"广州集美学院","cClass":"设计部","cDuty":"总工"}]"
[WebMethod]
    public object GetPersonAddrListCount(string pagewhere)
    {
        PersonAddrListBLL bll = new PersonAddrListBLL();
        pagewhere = pagewhere.Replace("+", "%2B") + " and cName<>'''' ";

        int count = bll.GetCount(HttpUtility.UrlDecode(pagewhere));
        return count;
    }
    [WebMethod]
    public string GetAllPersonAddrList(string pageindex, string pagewhere, string pagesort, string pagesize)
    {
        PersonAddrListBLL bll = new PersonAddrListBLL();
        //"姓名","cName"
        //"籍贯","nPlace"
        //"现工作单位","cUnit"
        //"现部门","cClass"
        //"现职务","cDuty"
        string selectList = " autoid,cName,nPlace,cUnit,cClass,cDuty ";
        if (string.IsNullOrEmpty(pagesort))
        {
            pagesort = "autoid asc";
        }
        pagewhere = pagewhere.Replace("+", "%2B") + " and cName<>'''' ";
        // DataSet tmpds = bll.GetList(selectList, HttpUtility.UrlDecode(pagewhere), pagesort, int.Parse(pageindex), int.Parse(pagesize));
        DataSet tmpds = bll.GetList(selectList, "autoid", 1, pageindex, pagesize, HttpUtility.UrlDecode(pagewhere), 500000, 20);
        if (tmpds != null && tmpds.Tables[0].Rows.Count > 0)
        {
            return Common.DataTable2Json(tmpds.Tables[0], false);
            //StringBuilder sb = new StringBuilder();
            //sb.Append("<table id='lzytbl' style='border:none;border-collapse: collapse;padding: 0px;width:1550px'><thead><tr>");
            //sb.Append("<td class='class_thead_th' >系统编号</td>");
            //sb.Append("<td class='class_thead_th' >姓名</td>");
            //sb.Append("<td class='class_thead_th' >籍贯</td>");
            //sb.Append("<td class='class_thead_th' >所在单位</td>");
            //sb.Append("<td class='class_thead_th' >所在部门</td>");
            //sb.Append("<td class='class_thead_th' >职务</td>");
            //sb.Append("</tr></thead><tbody>");
            //int index = 0;
            //foreach (DataRow dr in tmpds.Tables[0].Rows)
            //{
            //    if (index % 2 == 0)
            //    {
            //        sb.Append("<tr class='class_tbody_tr_odd' >");
            //    }
            //    else
            //    {
            //        sb.Append("<tr class='class_tbody_tr_even' >");
            //    }
            //    sb.Append("<td width=150>" + dr["autoid"].ToString() + "</td>");
            //    sb.Append("<td width=200>" + dr["cName"].ToString() + "</td>");
            //    sb.Append("<td width=300>" + dr["nPlace"].ToString() + "</td>");
            //    sb.Append("<td width=300>" + dr["cUnit"].ToString() + "</td>");
            //    sb.Append("<td width=300>" + dr["cClass"].ToString() + "</td>");
            //    sb.Append("<td width=300>" + dr["cDuty"].ToString() + "</td>");
            //    sb.Append("</tr>");
            //    index++;
            //}
            //sb.Append("</tbody></table>");
            //return sb.ToString();
        }
        else
        {
            return null;
        }
    }
public static string DataTable2Json(DataTable dt, bool withTableName)
    {
        StringBuilder jsonBuilder = new StringBuilder();
        if (withTableName)
        {
            jsonBuilder.Append("{\"");
            jsonBuilder.Append(dt.TableName);
            jsonBuilder.Append("\":");
        }
        jsonBuilder.Append("[");
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            jsonBuilder.Append("{");
            for (int j = 0; j < dt.Columns.Count; j++)
            {
                jsonBuilder.Append("\"");
                jsonBuilder.Append(dt.Columns[j].ColumnName);
                jsonBuilder.Append("\":\"");
                jsonBuilder.Append(dt.Rows[i][j].ToString());
                jsonBuilder.Append("\",");
                //HttpUtility.UrlEncode(
            }
            jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
            jsonBuilder.Append("},");
        }
        jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
        jsonBuilder.Append("]");
        if (withTableName) jsonBuilder.Append("}");
        return jsonBuilder.ToString();
    }

 

posted @ 2013-12-31 17:21  莫为然  阅读(340)  评论(0编辑  收藏  举报