jqGrid动态列
HTML代码:
<div id="divList">
<div class="toolbar">
</div>
<table id="list">
</table>
<div id="pager">
</div>
</div>
<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>
JS代码:
// 查询方法
function search() {
//固定列
var cols = ['Id', 'SupplierId', '年份', '合同编号', '项目名称', '供应商名称', '媒体点位', '合同时间', '上画时间', '合同总金额', '票据情况', '票据说明', '到票时间'];
var rows = [{ name: 'Id', hidden: true },
{ name: 'SupplierId', hidden: true },
{ name: 'Year', sortable: false, width: 35, fixed: true },
{ name: 'ContractNo', sortable: false, width: 80, fixed: true, formatter: function (v, o, r) {
return "<a href='javascript:void(0)' onclick='view(\"" + r["Id"] + "\")' > " + v + "</a>";
}
},
{ name: 'ProjectName', sortable: false, width: 80, fixed: true },
{ name: 'SupplierName', sortable: false, width: 80, fixed: true, formatter: function (v, o, r) {
return "<a href='javascript:void(0)' onclick='viewSupplier(\"" + r["SupplierId"] + "\")' > " + v + "</a>";
}
},
{ name: 'Location', sortable: false, width: 80, fixed: true, formatter: function (v, o, r) {
return "<a href='javascript:void(0)' onclick='viewPurchase(\"" + r["Id"] + "\")' > " + v + "</a>";
}
},
{ name: 'DispContractStartTime', sortable: false, width: 80, fixed: true },
{ name: 'DispDrawingTime', sortable: false, width: 80, fixed: true },
{ name: 'SumAmount', sortable: false, width: 80, fixed: true, align: "right" },
{ name: 'InvoiceCondition', sortable: false, width: 60, fixed: true },
{ name: 'InvoiceDesc', sortable: false, width: 80, fixed: true },
{ name: 'ReceiveInvoiceTime', sortable: false, width: 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, width: 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, width: 80, fixed: true });
rows.push({ name: "NotPay2", sortable: false, width: 80, fixed: true });
rows.push({ name: "NotPay3", sortable: false, width: 80, fixed: true });
rows.push({ name: "NotPay4", sortable: false, width: 80, fixed: true });
rows.push({ name: "NotPay5", sortable: false, width: 80, fixed: true });
rows.push({ name: "NotPay6", sortable: false, width: 80, fixed: true });
rows.push({ name: "NotPay7", sortable: false, width: 80, fixed: true });
rows.push({ name: "NotPay8", sortable: false, width: 80, fixed: true });
rows.push({ name: "NotPay9", sortable: false, width: 80, fixed: true });
rows.push({ name: "NotPay10", sortable: false, width: 80, fixed: true });
rows.push({ name: "NotPay11", sortable: false, width: 80, fixed: true });
rows.push({ name: "NotPay12", sortable: false, width: 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',
width: $(".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(" ");
}
}
});
}
},
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");
}
jqGrid动态列的更多相关文章
- jqGrid动态增加列,使用在根据条件筛选而出现不同的列的场景
function GetGrid2() { var jqdata = [ { Encode:"20180100", FullName: "BYD", SpecT ...
- Dynamic CRM 2013学习笔记(二十六)报表设计:Reporting Service报表 动态参数、参数多选全选、动态列、动态显示行字体颜色
上次介绍过CRM里开始报表的一些注意事项:Dynamic CRM 2013学习笔记(十五)报表入门.开发工具及注意事项,本文继续介绍报表里的一些动态效果:动态显示参数,参数是从数据库里查询出来的:参数 ...
- extjs动态树 动态grid 动态列
由于项目需要做一个动态的extjs树.列等等,简而言之,就是一个都是动态的加载功能, 自己琢磨了半天,查各种资料,弄了将近两个星期,终于做出来了 首先,想看表结构,我的这个功能需要主从两张表来支持 代 ...
- displaytag 动态列实现
这种动态列的实现方法来自displaytag-examples-1.2.war提供的示例中,实际上下载下来的zip文件中不仅有各种jar包,还有这个包含各种例子的war包,是学习displaytag的 ...
- Easy DataGrid 实现动态列、行
Easy DataGrid 实现动态列.行 前端代码: <title>展示销售的实时数据</title> <script type="text/javascri ...
- 记React+.NetCore API实现动态列导出
1.效果演示 2.用到的第三方类库 前端:React,Dva,Antd 后端:ASP.NET CORE,System.Linq.Dynamic.Core,EPPlus.Core 3.基本思路 第一:E ...
- datatable动态列处理,重绘表格(敲黑板,划重点!!!我肝了一天半才彻底弄懂这个东西,TAT)
datatable动态列处理,重绘表格 前言:至于动态列的绘画,我前面博客已经写过了,就是动态列的配置问题,不懂的去我博客看下,今天要写的呢,就是你已经写了一个动态列在datatable,现在你想重新 ...
- jqGrid选择列控件向右拖拽超出边界处理
jqGrid选择列控件向右拖拽超出边界处理 $("#tb_DeviceInfo").jqGrid('navButtonAdd', '#jqGridPager', { ...
- [转]bootstrap table 动态列数
原文地址:https://my.oschina.net/u/2356355/blog/1595563 据说bootstrap table非常好用,从入门教程中了解到它的以下主要功能: 由于固定表头意味 ...
随机推荐
- <a>标签href属性与onclick事件
a标签主要用来实现页面跳转,可以通过href属性实现,也可以在onclick事件里实现. <a onclick="window.location.href='www.cnblogs.c ...
- leetCode191/201/202/136 -Number of 1 Bits/Bitwise AND of Numbers Range/Happy Number/Single Number
一:Number of 1 Bits 题目: Write a function that takes an unsigned integer and returns the number of '1' ...
- ARCGIS10.1 GeoDatabase深入理解:客户端连接与退出地理数据库时系统表的初始化
平台软件:ARCIGS10.1 ,SQL Server2008R2 目的:了解客户端在连接arcgis 空间地理数据库后,地理数据库会做些什么样的初始化工作 准备工作: 1.准备好数据库日志文件查看工 ...
- Pro ASP.NET MVC –第四章 语言特性精华
C#语言有很多特性,并不是所有的程序员都了解本书我们将会使用的C#语言特性.因此,在本章,我们将了解一下作为一个好的MVC程序员需要了解C#语言的特性. 每个特性我们都只是简要介绍.如果你想深入了解L ...
- 2015.10.14-TransactionScope测试
测试代码: ; ; List<string> lst = null; Action doSth = () => { using (var db = new TestSystemEnt ...
- Unity3D常用代码总结
1 GUI汇总 function OnGUI() { GUI.Label(Rect(1,1,100,20),"I'm a Label"); //1 GUI.Box(Rect(1,2 ...
- Angular 使用
tks: 使用: http://developer.51cto.com/art/201302/380661.htm http://www.infoq.com/cn/news/2013/02/angul ...
- Winform中进行MD5加密
Winform,c#进行MD5加密直接上步骤: 1.添加引用 2.在.NET选项卡中找到“System.Web” 3.选中之后,点击“确定”即可,此时会在解决方案中看到刚才添加的引用 4.引用名空间: ...
- Spring MVC 事务配置
Spring MVC事务配置 要了解事务配置的所有方法,请看一下<Spring事务配置的5种方法> 本文介绍两种配置方法: 一. XML,使用tx标签配置拦截器实现事务 一. ...
- SVN: bdb: BDB1538 Program version 5.3 doesn't match environment version 4.7
Q:bdb: BDB1538 Program version 5.3 doesn't match environment version 4.7 A: svnadmin recover /var/wh ...