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非常好用,从入门教程中了解到它的以下主要功能: 由于固定表头意味 ...
随机推荐
- NCPC 2013: Dance Reconstruction
题目大意 对一个初始矩阵进行置换操作,已知经K次置换后得到的矩阵为,求一组可能的. 样例解释 这里只选取第二组样例进行解释. 4 2 3 4 1 2 2 3 4 1 初始矩阵为,根据Sample Ou ...
- 使用sqlserver的游标功能来导数据的常见写法
一定要自己试过才知道么? 你也没试过吃屎,你怎么知道屎不能吃,难道你试过啊...(没有愤怒的意思) ),),) declare cursor_data CURSOR FOR SELECT [UserN ...
- 命令行模式下 MYSQL导入导出.sql文件的方法
一.MYSQL的命令行模式的设置:桌面->我的电脑->属性->环境变量->新建->PATH=“:path\mysql\bin;”其中path为MYSQL的安装路径.二.简 ...
- ASP.NET 4.0 potentially dangerous Request.Form value was detected
A few days ago, while working on an ASP.NET 4.0 Web project, I got an issue. The issue was, when use ...
- dll return a string
char g_szText[1024]; __declspec(dllexport) const char * __stdcall FuncName(const unsigned char *p) { ...
- OpenSSL Command-Line HOWTO
OpenSSL Command-Line HOWTO The openssl application that ships with the OpenSSL libraries can perform ...
- [leetcode]Rotate Array
in place交换 如果是k步,那么就是把后面k个放到前面了嘛. 我们先把整个数组reverse,然后把前面的reverse回来,再把后面的reverse回来 对于AB我们要通过reverse操作得 ...
- [转]c++流缓冲---rdbuf()
C++标准库封装了一个缓冲区类streambuf,以供输入输出流对象使用.每个标准C++输出输出流对象都包含一个指向streambuf的指针,用 户可以通过调用rdbuf()成员函数获得该指针,从而直 ...
- 如何将 Cortana 与 Windows Phone 8.1 应用集成 ( Voice command - Natural language recognition )
随着 Windows Phone 8.1 GDR1 + Cortana 中文版的发布,相信有很多用户或开发者都在调戏 Windows Phone 的语音私人助理 Cortana 吧,在世界杯的时候我亲 ...
- ux.form.field.SearchField 列表、树形菜单查询扩展
//支持bind绑定store //列表搜索扩展,支持本地查询 //支持树形菜单本地一级菜单查询 Ext.define('ux.form.field.SearchField', { extend: ' ...