• jqGrid动态列


    HTML代码:

    <div id="divList">
        <div class="toolbar">
        </div>
        <table id="list">
        </table>
        <div id="pager">
        </div>
    </div>
    View Code
    <table id="tableCols" cellpadding="0" cellspacing="0">
        <tr>
            <td>
                <input id="checkAll" type="checkbox" />
            </td>
            <td class="tdText">
                可选显示列:
            </td>
            <td>
                <input type="checkbox" text="发布周期" value="Period" />
            </td>
            <td class="tdText">
                发布周期
            </td>
            <td>
                <input type="checkbox" text="客户执行金额" value="SellAmount" />
            </td>
            <td class="tdText">
                客户执行金额
            </td>
            <td>
                <input type="checkbox" text="开户银行" value="OpenBank" />
            </td>
            <td class="tdText">
                开户银行
            </td>
            <td>
                <input type="checkbox" text="银行账号" value="Account" />
            </td>
            <td class="tdText">
                银行账号
            </td>
            <td>
                <input type="checkbox" text="联系人" value="Linkman" />
            </td>
            <td class="tdText">
                联系人
            </td>
            <td>
                <input type="checkbox" text="电话" value="Phone" />
            </td>
            <td class="tdText">
                电话
            </td>
        </tr>
    </table>
    View Code

    JS代码:

    // 查询方法
    function search() {
        //固定列
        var cols = ['Id', 'SupplierId', '年份', '合同编号', '项目名称', '供应商名称', '媒体点位', '合同时间', '上画时间', '合同总金额', '票据情况', '票据说明', '到票时间'];
        var rows = [{ name: 'Id', hidden: true },
                    { name: 'SupplierId', hidden: true },
                    { name: 'Year', sortable: false,  35, fixed: true },
                       { name: 'ContractNo', sortable: false,  80, fixed: true, formatter: function (v, o, r) {
                           return "<a href='javascript:void(0)' onclick='view(\"" + r["Id"] + "\")' > " + v + "</a>";
                       }
                       },
                    { name: 'ProjectName', sortable: false,  80, fixed: true },
                    { name: 'SupplierName', sortable: false,  80, fixed: true, formatter: function (v, o, r) {
                        return "<a href='javascript:void(0)' onclick='viewSupplier(\"" + r["SupplierId"] + "\")' > " + v + "</a>";
                    }
                    },
                    { name: 'Location', sortable: false,  80, fixed: true, formatter: function (v, o, r) {
                        return "<a href='javascript:void(0)' onclick='viewPurchase(\"" + r["Id"] + "\")' > " + v + "</a>";
                    }
                    },
                    { name: 'DispContractStartTime', sortable: false,  80, fixed: true },
                    { name: 'DispDrawingTime', sortable: false,  80, fixed: true },
                    { name: 'SumAmount', sortable: false,  80, fixed: true, align: "right" },
                    { name: 'InvoiceCondition', sortable: false,  60, fixed: true },
                    { name: 'InvoiceDesc', sortable: false,  80, fixed: true },
                    { name: 'ReceiveInvoiceTime', sortable: false,  80, fixed: true}];
    
        //可选列
        $("#tableCols").find("input[text]:checked").each(function () {
            var checkbox = $(this);
            var colName = checkbox.val();
            var text = checkbox.attr("text");
            cols.push(text);
            rows.push({ name: colName, sortable: false,  80, fixed: true });
        });
    
        //月份列
        cols.push("1月份");
        cols.push("2月份");
        cols.push("3月份");
        cols.push("4月份");
        cols.push("5月份");
        cols.push("6月份");
        cols.push("7月份");
        cols.push("8月份");
        cols.push("9月份");
        cols.push("10月份");
        cols.push("11月份");
        cols.push("12月份");
        rows.push({ name: "NotPay1", sortable: false,  80, fixed: true });
        rows.push({ name: "NotPay2", sortable: false,  80, fixed: true });
        rows.push({ name: "NotPay3", sortable: false,  80, fixed: true });
        rows.push({ name: "NotPay4", sortable: false,  80, fixed: true });
        rows.push({ name: "NotPay5", sortable: false,  80, fixed: true });
        rows.push({ name: "NotPay6", sortable: false,  80, fixed: true });
        rows.push({ name: "NotPay7", sortable: false,  80, fixed: true });
        rows.push({ name: "NotPay8", sortable: false,  80, fixed: true });
        rows.push({ name: "NotPay9", sortable: false,  80, fixed: true });
        rows.push({ name: "NotPay10", sortable: false,  80, fixed: true });
        rows.push({ name: "NotPay11", sortable: false,  80, fixed: true });
        rows.push({ name: "NotPay12", sortable: false,  80, fixed: true });
    
        //列表
        $("#divList").html('<div class="toolbar"></div><table id="list"></table><div id="pager"></div>');
        $("#list").jqGrid({
            url: '#{GetSummaryIndexData}',
            serializeGridData: function (postData) {
                return Simpo.ui.jqGrid.serializeGridData(postData);
            },
            datatype: "json",
            colNames: cols,
            colModel: rows,
            rowNum: 10,
            rowList: [10, 20, 30],
            pager: '#pager',
            sortable: false,
            sortname: 'Id',
            sortorder: "desc",
            viewrecords: true,
            rownumbers: true,
            multiselect: true,
            height: 'auto',
             $(".adminMainContent").width(),
            loadComplete: function (xhr) {
                Simpo.ui.jqGrid.loadComplete("list", xhr);
    
                //遍历数据行,将支付完毕的行颜色锁定
                $("#list").find("tr[id]").each(function () {
                    var tr = $(this);
    
                    var noDataCount = 0;
                    tr.find("td").each(function () {
                        var td = $(this);
                        if ($.trim(td.html()) == "NoData") {
                            noDataCount++;
                        }
                    });
                    if (noDataCount == 12) {
                        tr.find("td").css("background-color", "#e6e6e6");
                    }
                });
    
                //还原显示所有月份列
                var titleTable = $("#list").parent().parent().parent().find("table:first");
                for (var i = 40; i >= 10; i--) {
                    var th = titleTable.find("tr").find("th:eq(" + i + ")");
                    if (th) th.css("display", "");
                }
                for (var i = 40; i >= 10; i--) {
                    $("#list").find("tr").each(function () {
                        var tr = $(this);
    
                        var td = tr.find("td:eq(" + i + ")");
                        if (td) td.css("display", "");
                    });
                }
    
                //隐藏没有数据的月份列
                for (var i = 40; i >= 10; i--) {
                    var del = true;
    
                    //遍历数据行的i列
                    $("#list").find("tr[id]").each(function () {
                        var tr = $(this);
    
                        var td = tr.find("td:eq(" + i + ")");
                        if (td) {
                            if ($.trim(td.html()) != "NoData") {
                                del = false;
                            }
                        }
                        else {
                            del = false;
                        }
                    });
    
                    if (del) {
                        //隐藏标题行的i列
                        titleTable.find("tr").each(function () {
                            var tr = $(this);
    
                            var th = tr.find("th:eq(" + i + ")");
                            th.css("display", "none");
                        });
    
                        //隐藏数据行的i列
                        $("#list").find("tr").each(function () {
                            var tr = $(this);
    
                            var td = tr.find("td:eq(" + i + ")");
                            td.css("display", "none");
                        });
                    }
    
                    //遍历数据行的i列,删除NoData标记
                    $("#list").find("tr[id]").each(function () {
                        var tr = $(this);
    
                        var td = tr.find("td:eq(" + i + ")");
                        if (td) {
                            if ($.trim(td.html()) == "NoData") {
                                td.html("&nbsp;");
                            }
                        }
                    });
                }
            },
            onHeaderClick: function () {
                Simpo.ui.jqGrid.autoWidth("list"); // 自动宽度
            },
            loadError: function (xhr, status, error) {
                Simpo.ui.jqGrid.loadError("list", xhr, status, error);
            }
        });
        jQuery("#list").jqGrid('navGrid', '#pager', { edit: false, add: false, del: false, search: false }).jqGrid('sortableRows');
    
        var postData = Simpo.ui.jqGrid.serializeGridData("list");
        jQuery("#list").jqGrid('setGridParam', { postData: postData, page: 1 }).trigger("reloadGrid");
    }
    View Code
  • 相关阅读:
    团队项目冲刺七
    团队项目冲刺六
    团队项目冲刺5
    团队项目冲刺4
    团队项目测试计划
    团队项目冲刺第三天进度和遇到问题
    团队项目冲刺第二天进度和问题
    博客园用户体验
    团队项目冲刺第一天进度和问题
    团队项目风险
  • 原文地址:https://www.cnblogs.com/s0611163/p/3946887.html
Copyright © 2020-2023  润新知