纽威
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

667 lines
26 KiB

3 years ago
3 years ago
3 years ago
3 years ago
  1. @{
  2. ViewBag.Title = "Index";
  3. Layout = "~/Views/Shared/_Index.cshtml";
  4. }
  5. <style>
  6. .btn-primary {
  7. margin-right: 2px;
  8. }
  9. .topPanel .toolbar {
  10. float: left;
  11. }
  12. /*.ui-jqgrid tr.jqgrow td {
  13. white-space: normal !important;
  14. height: auto;
  15. }*/
  16. </style>
  17. <script src="~/Content/js/CommonReport/CommonReport.js"></script>
  18. <script>
  19. //var _MenuCaption = "";
  20. var _MenuTag = "";
  21. var _MenuID = "";//菜单ID
  22. var _SourceID = "";//数据源ID
  23. var _sqlTxt = "";//加上参数的sql
  24. var _sqlTxt_Condition = new Array();//加上过滤条件的sql
  25. var _sqlTxt_AddCondition = "";//加上过滤条件的sql
  26. var _IsExistsDataSource = "";
  27. var _DBName = "";//s数据库
  28. var _Cols = new Array();//列
  29. var _ReportName = "";
  30. var _Filter = "";
  31. var _TempName = "";
  32. var _footerrow = false;//是否有合计项
  33. var _footercols = new Array();//合计项
  34. var _formatcols = new Array();//个性化项
  35. var _formatcols_Row = new Array();//个性化项的行
  36. var _Mergercols = new Array();//合并项
  37. var _XCol = "";
  38. var dataRR = "";
  39. var _HiddenCols = new Array();
  40. $(function () {
  41. //1、获取当前页菜单名
  42. GetMenuID();
  43. //2、获取菜单设置
  44. GetMenu();
  45. //gridList();
  46. $(window).resize(function () {
  47. $("#gridList").setGridWidth($(window).width() * 0.99);
  48. $("#gridList").setGridWidth(document.body.clientWidth * 0.99);
  49. $("#gridList").setGridHeight($(window).height() - 132);
  50. $("#gridList").setGridHeight(document.body.clientHeight - 132);
  51. });
  52. });
  53. //1、获取当前页菜单名
  54. function GetMenuID() {
  55. var cc = self.frameElement.getAttribute('id');
  56. _MenuID = cc.replace("iframe", "");
  57. //_MenuTag = $.request("MenuTag");
  58. //$.ajax({
  59. // url: "/SystemManage/CommonReport/GetMenuID?MenuTag=" + _MenuTag + "&" + Math.random(),
  60. // dataType: "json",
  61. // async: false,
  62. // success: function (data) {
  63. // if (data != false && data != null && data.length > 0) {
  64. // _MenuID = data[0].MenuID;
  65. // }
  66. // else {
  67. // alert("获取菜单ID异常,请查看菜单配置并刷新:" + data);
  68. // }
  69. // },
  70. // error: function (aa) {
  71. // alert("异常:" + aa.responseText);
  72. // }
  73. //});
  74. }
  75. //2、获取菜单设置 URL 列 等
  76. function GetMenu() {
  77. $.ajax({
  78. url: "/SystemManage/CommonReport/GetMenu?MenuID=" + _MenuID + "&" + Math.random(),
  79. dataType: "json",
  80. async: false,
  81. success: function (data) {
  82. if (data != false && data != null) {
  83. _sqlTxt = data.sqlTxt;
  84. _sqlTxt_AddCondition = data.sqlTxt;
  85. _DBName = data.DBName;
  86. _SourceID = data.SourceID;
  87. _IsExistsDataSource = data.IsExistsDataSource;
  88. _ReportName = data.ReportName;
  89. _XCol = data.XCol;
  90. _Mergercols = eval(data.Mergercols);
  91. _formatcols = data.formatcols;
  92. _TempName = data.TempName;
  93. _footerrow = data.footerrow;
  94. _footercols = eval(data.footercols);
  95. _Cols = SetCols(eval(data.Cols));
  96. _HiddenCols = eval(data.HiddenCols);
  97. btn_Filter();
  98. }
  99. else {
  100. alert("获取菜单栏位等信息异常。" + data);
  101. }
  102. },
  103. error: function (aa) {
  104. //alert("异常:" + aa.responseText);
  105. $.modalAlertNew("WMS00015", aa.responseText);
  106. }
  107. });
  108. }
  109. //个性化栏位背景色
  110. function addCellAttr(rowId, val, rawObject, cm, rdata) {
  111. var rr = ' id=\'' + cm.name + '' + rowId + "\' ";
  112. var formatList = Getformatcol(_formatcols, cm.name);//获取format所有条件
  113. if (formatList != null && formatList.length > 0) {
  114. for (var i = 0; i < formatList.length; i++) {
  115. var formatcol = formatList[i];//条件
  116. var IsRow = false;
  117. if (formatcol.AllRowFlag) {
  118. IsRow = true;
  119. var rr = {
  120. rowid: rowId - 1,
  121. backgroundcolor: formatcol.Color,
  122. }
  123. }
  124. var FormatDataType = formatcol.DataType;
  125. var LogStr = GetLogStringByNum(parseInt(formatcol.LogStr));
  126. if (FormatDataType != "日期型") {
  127. switch (LogStr) {
  128. case "等于": if (val == formatcol.SValue) {
  129. if (IsRow) { _formatcols_Row.push(rr); }
  130. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  131. }
  132. break;
  133. case "不等于": if (val != formatcol.SValue) {
  134. if (IsRow) { _formatcols_Row.push(rr); }
  135. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  136. }
  137. break;
  138. case "小于": if (val < formatcol.SValue) {
  139. if (IsRow) { _formatcols_Row.push(rr); }
  140. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  141. }
  142. break;
  143. case "大于": if (val > formatcol.SValue) {
  144. if (IsRow) { _formatcols_Row.push(rr); }
  145. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  146. }
  147. break;
  148. case "小于等于": if (val <= formatcol.SValue) {
  149. if (IsRow) { _formatcols_Row.push(rr); }
  150. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  151. }
  152. break;
  153. case "大于等于": if (val >= formatcol.SValue) {
  154. if (IsRow) { _formatcols_Row.push(rr); }
  155. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  156. }
  157. break;
  158. case "范围内": if (val >= formatcol.SValue && val <= formatcol.DValue) {
  159. if (IsRow) { _formatcols_Row.push(rr); }
  160. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  161. }
  162. break;
  163. case "范围外": if (val < formatcol.SValue || val > formatcol.DValue) {
  164. if (IsRow) { _formatcols_Row.push(rr); }
  165. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  166. }
  167. break;
  168. case "包含": if (val.indexOf(formatcol.SValue) != -1) {
  169. if (IsRow) { _formatcols_Row.push(rr); }
  170. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  171. }
  172. break;
  173. case "头部包含": if (val.indexOf(formatcol.SValue) == 0) {
  174. if (IsRow) { _formatcols_Row.push(rr); }
  175. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  176. }
  177. break;
  178. case "尾部包含": if (val.indexOf(formatcol.SValue) == formatcol.length - val.length) {
  179. if (IsRow) { _formatcols_Row.push(rr); }
  180. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  181. }
  182. break;
  183. case "不包含": if (val.indexOf(formatcol.SValue) == -1) {
  184. if (IsRow) { _formatcols_Row.push(rr); }
  185. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  186. }
  187. break;
  188. }
  189. }
  190. else {
  191. //日期型
  192. if (val.length >= 10)
  193. {
  194. var VV = val.substring(0, 10);
  195. switch (LogStr) {
  196. case "等于":
  197. if (VV== formatcol.SValue) {
  198. if (IsRow) { _formatcols_Row.push(rr); }
  199. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  200. }
  201. break;
  202. case "不等于": if (VV != formatcol.SValue) {
  203. if (IsRow) { _formatcols_Row.push(rr); }
  204. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  205. }
  206. break;
  207. case "小于":
  208. if (VV < formatcol.SValue) {
  209. if (IsRow) { _formatcols_Row.push(rr); }
  210. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  211. }
  212. break;
  213. case "大于": if (VV > formatcol.SValue) {
  214. if (IsRow) { _formatcols_Row.push(rr); }
  215. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  216. }
  217. break;
  218. case "小于等于": if (VV <= formatcol.SValue) {
  219. if (IsRow) { _formatcols_Row.push(rr); }
  220. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  221. }
  222. break;
  223. case "大于等于": if (VV >= formatcol.SValue) {
  224. if (IsRow) { _formatcols_Row.push(rr); }
  225. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  226. }
  227. break;
  228. case "范围内": if (VV >= formatcol.SValue && VV <= formatcol.DValue) {
  229. if (IsRow) { _formatcols_Row.push(rr); }
  230. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  231. }
  232. break;
  233. case "范围外": if (VV < formatcol.SValue || VV > formatcol.DValue) {
  234. if (IsRow) { _formatcols_Row.push(rr); }
  235. else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
  236. }
  237. break;
  238. }
  239. }
  240. }
  241. }
  242. }
  243. return rr;
  244. }
  245. //个性化栏位背景色
  246. function addCellAttr_ID(rowId, val, rawObject, cm, rdata) {
  247. var rr = ' id=\'' + cm.name + '' + rowId + "\' ";
  248. return rr;
  249. }
  250. function Getformatcol(formatcols, colname) {
  251. var formatList = new Array();
  252. if (formatcols != null && formatcols.length > 0) {
  253. for (var i = 0; i < formatcols.length; i++) {
  254. if (formatcols[i].ColFiledName == colname) {
  255. formatList.push(formatcols[i]);
  256. }
  257. }
  258. }
  259. return formatList;
  260. }
  261. //生成colModel
  262. function SetCols(datacols) {
  263. var cols = new Array();
  264. if (datacols != null && datacols.length > 0) {
  265. for (var i = 0; i < datacols.length; i++) {
  266. var ColCaption = datacols[i].ColCaption;
  267. var ColFiledName = datacols[i].ColFiledName;
  268. var DataType = datacols[i].DataType;
  269. var DataTypeStr = GetDataTypeByNum(DataType);
  270. var ColWidth = datacols[i].ColWidth;
  271. var DeciamlNum = datacols[i].DeciamlNum;
  272. var sortable = datacols[i].sortable;
  273. var ColMerFlag = datacols[i].ColMerFlag;
  274. var IsFormat = datacols[i].IsFormat;
  275. var obj = new Array();
  276. if (IsFormat == "1") {
  277. obj = {
  278. label: ColCaption,
  279. name: ColFiledName,
  280. width: ColWidth,
  281. align: "left",
  282. sortable: sortable,
  283. cellattr: addCellAttr,
  284. }
  285. }
  286. else {
  287. obj = {
  288. label: ColCaption,
  289. name: ColFiledName,
  290. width: ColWidth,
  291. align: "left",
  292. sortable: sortable,
  293. cellattr: addCellAttr_ID,
  294. }
  295. }
  296. switch (DataTypeStr) {
  297. case "数值型":
  298. var Formatoptions = new { decimalPlaces: DeciamlNum };
  299. obj.push({ formatter: "number" });
  300. obj.push({ formatoptions: Formatoptions });
  301. break;
  302. case "字符型":
  303. case "日期型":
  304. case "布尔值":
  305. break;
  306. }
  307. //if (IsFormat) {
  308. // obj.push({ cellattr: addCellAttr });
  309. //}
  310. cols.push(obj);
  311. }
  312. var collast = { label: "", name: "", width: "20", align: "left", sortable: false };
  313. cols.push(collast);
  314. }
  315. return cols;
  316. }
  317. function gridList() {
  318. document.getElementById("gridPanel").innerHTML = ' <table id="gridList"></table> <div id="gridPager"></div>';//重置grid
  319. _formatcols_Row = new Array();
  320. var $gridList = $("#gridList");
  321. var condion = new Array();
  322. if (_sqlTxt_Condition != undefined && _sqlTxt_Condition.length > 0)
  323. {
  324. condion = _sqlTxt_Condition;
  325. }
  326. $gridList.dataGrid({
  327. //url: "/SystemManage/CommonReport/GetGridJson",
  328. url: "/SystemManage/CommonReport/GetGridJsonNew",
  329. height: $(window).height() - 132,
  330. // postData: { sqlTxt: _sqlTxt_AddCondition, DBName: _DBName, TempName: _TempName },
  331. postData: { MenuID: _MenuID, sqlTxt_Condition: JSON.stringify(condion), DBName: _DBName, TempName: _TempName },
  332. colModel: _Cols,
  333. pager: "#gridPager",
  334. //sortname: ' ',
  335. //sortorder: ' ',
  336. sortname: _XCol,
  337. sortorder: ' ',
  338. viewrecords: true,
  339. footerrow: _footerrow,
  340. gridComplete: function () {
  341. var strIds = $("#gridList").jqGrid("getDataIDs");
  342. if (_formatcols_Row.length > 0) {
  343. for (var i = 0; i < _formatcols_Row.length; i++) {
  344. $("#" + strIds[_formatcols_Row[i].rowid] + " td").css("background-color", _formatcols_Row[i].backgroundcolor);
  345. }
  346. }
  347. //$("#"+ids[ii]+ " td").css("background-color","red");
  348. //合并行
  349. if (_Mergercols != undefined && _Mergercols.length > 0) {
  350. for (var i = 0; i < _Mergercols.length; i++) {
  351. Merger("gridList", _Mergercols[i]);
  352. }
  353. }
  354. //合计
  355. if (_footerrow == true) {
  356. var footerData = {};
  357. for (var i = 0; i < _footercols.length; i++) {
  358. var total = 0;
  359. for (var j = 0; j < strIds.length; j++) {
  360. var qty = $("#gridList").jqGrid("getCell", strIds[j], _footercols[i]);
  361. if (qty != "") {
  362. total += parseInt(qty);
  363. }
  364. }
  365. footerData[_footercols[i]] = total;
  366. }
  367. $("#gridList").footerData('set', footerData);
  368. $("#gridList").footerData('set', { "rn": "合计" });
  369. }
  370. //隐藏列(不可见/无权限)
  371. if (_HiddenCols != null && _HiddenCols.length > 0)
  372. {
  373. for (var j = 0; j < _HiddenCols.length; j++)
  374. {
  375. $("#gridList").setGridParam().hideCol(_HiddenCols[j].ColFiledName);
  376. }
  377. }
  378. },
  379. loadError: function (data) {
  380. //alert("异常:");
  381. $.modalAlertNew("WMS00015");
  382. }
  383. });
  384. $("#btn_search").click(function () {
  385. $gridList.jqGrid('setGridParam', {
  386. //sqlTxt: _sqlTxt_AddCondition, DBName: _DBName, TempName: _TempName
  387. MenuID: _MenuID, sqlTxt_Condition: JSON.stringify(condion), DBName: _DBName, TempName: _TempName
  388. }).trigger('reloadGrid');
  389. });
  390. }
  391. //过滤
  392. function btn_Filter() {
  393. $.modalOpen({
  394. id: "Filer",
  395. title: "过滤条件",
  396. url: "/SystemManage/CommonReport/Filter?MenuID=" + _MenuID + "&SourceID=" + _SourceID + "&" + Math.random(),
  397. width: "800px",
  398. height: "570px",
  399. btn: ['确认', '关闭'],
  400. callBack: function (iframeId) {
  401. _sqlTxt_Condition = eval(top.frames[iframeId].submitForm());
  402. //_sqlTxt_AddCondition = _sqlTxt;
  403. if (_sqlTxt_Condition != undefined) {
  404. // if (_sqlTxt_Condition.length > 0) {
  405. // for (var i = 0; i < _sqlTxt_Condition.length; i++) {
  406. // _sqlTxt_AddCondition = ReplaceALL(_sqlTxt_AddCondition, _sqlTxt_Condition[i].CIndex, _sqlTxt_Condition[i].Content);
  407. // }
  408. // }
  409. top.frames[iframeId].Close();
  410. gridList();
  411. }
  412. }
  413. });
  414. }
  415. //数据源
  416. function btn_DataSource() {
  417. $.modalOpen({
  418. id: "DataSource",
  419. title: "数据源",
  420. url: "/SystemManage/CommonReport/DataSource?MenuID=" + _MenuID,//+ "&" + Math.random(),
  421. width: "1300px",
  422. height: "570px",
  423. btn: ['确认', '关闭'],
  424. callBack: function (iframeId) {
  425. dataRR = top.frames[iframeId].submitForm();
  426. if (dataRR == "Error")
  427. { }
  428. else {
  429. GetMenu();
  430. }
  431. }
  432. });
  433. }
  434. //列设置
  435. function btn_Cols() {
  436. if (_IsExistsDataSource != "1") {
  437. alert("请先设置数据源");
  438. }
  439. else {
  440. $.modalOpen({
  441. id: "Cols",
  442. title: "列设置",
  443. url: "/SystemManage/CommonReport/Cols?SourceID=" + _SourceID + "&MenuID=" + _MenuID + "&" + Math.random(),
  444. width: "1300px",
  445. height: "570px",
  446. btn: ['确认', '关闭'],
  447. callBack: function (iframeId) {
  448. top.frames[iframeId].submitForm();
  449. GetMenu();
  450. }
  451. });
  452. }
  453. }
  454. //个性化设置
  455. function btn_GridFormat() {
  456. if (_IsExistsDataSource != "1") {
  457. alert("请先设置数据源");
  458. }
  459. else {
  460. $.modalOpen({
  461. id: "GridFormat",
  462. title: "个性化设置",
  463. url: "/SystemManage/CommonReport/GridFormat?SourceID=" + _SourceID + "&" + Math.random(),
  464. width: "800px",
  465. height: "570px",
  466. btn: null,
  467. callBack: function (iframeId) {
  468. GetMenu();
  469. }
  470. });
  471. }
  472. }
  473. //多表头设置
  474. function btn_GridHeader() {
  475. if (_IsExistsDataSource != "1") {
  476. alert("请先设置数据源");
  477. }
  478. else {
  479. $.modalOpen({
  480. id: "GridHeader",
  481. title: "多表头设置",
  482. url: "/SystemManage/CommonReport/GridHeader?SourceID=" + _SourceID + "&" + Math.random(),
  483. width: "1300px",
  484. height: "570px",
  485. btn: ['确认', '关闭'],
  486. callBack: function (iframeId) {
  487. top.frames[iframeId].submitForm();
  488. GetMenu();
  489. }
  490. });
  491. }
  492. }
  493. //清空本菜单所有数据源相关设置
  494. function btn_Clear() {
  495. $.deleteForm({
  496. url: "/SystemManage/CommonReport/ClearAll?" + Math.random(),
  497. param: { MenuID: _MenuID },
  498. success: function () {
  499. _SourceID = "";//数据源ID
  500. _sqlTxt = "";//加上参数的sql
  501. _sqlTxt_AddCondition = "";//加上过滤条件的sql
  502. _TempName = "";
  503. _IsExistsDataSource = "";
  504. _DBName = "";//s数据库
  505. _Cols = new Array();//列
  506. _Filter = "";
  507. _footerrow = false;//是否有合计项
  508. _footercols = new Array();//合计项
  509. _formatcols = new Array();//个性化项
  510. _formatcols_Row = new Array();//个性化项的行
  511. _Mergercols = new Array();//合并项
  512. document.getElementById("gridPanel").innerHTML = ' <table id="gridList"></table> <div id="gridPager"></div>';
  513. },
  514. error: function (aa) {
  515. //alert("异常", aa.responseText);
  516. $.modalAlertNew("WMS00015", aa.responseText);
  517. }
  518. });
  519. }
  520. function btn_ExportAll()
  521. {
  522. var condion = new Array();
  523. if (_sqlTxt_Condition != undefined && _sqlTxt_Condition.length > 0) {
  524. condion = _sqlTxt_Condition;
  525. }
  526. //var data = "&sqlTxt=" + encodeURIComponent(_sqlTxt_AddCondition) + "&DBName=" + _DBName + "&TempName=" + _TempName + "&MenuID=" + _MenuID;
  527. var data = "&sqlTxt=" + encodeURIComponent(JSON.stringify(condion)) + "&DBName=" + _DBName + "&TempName=" + _TempName + "&MenuID=" + _MenuID;
  528. $.download("/SystemManage/CommonReport/ExportAllNew?" + Math.random(), data, 'post');
  529. }
  530. function btn_WatchPanel() {
  531. var condion = new Array();
  532. if (_sqlTxt_Condition != undefined && _sqlTxt_Condition.length > 0) {
  533. condion = _sqlTxt_Condition;
  534. }
  535. $.modalOpen({
  536. id: "WatchPanel",
  537. title: _ReportName + "看板显示",
  538. url: "/SystemManage/CommonReport/WatchPanel?_MenuID=" + _MenuID + "&_sqlTxt_Condition=" + escape(JSON.stringify(condion)) + "&TempName=" + escape(_TempName) + "&" + Math.random(),
  539. width: "1300px",
  540. height: "570px",
  541. btn: null,
  542. callBack: function (iframeId) {
  543. top.frames[iframeId].submitForm();
  544. GetMenu();
  545. }
  546. });
  547. }
  548. //角色显示栏位
  549. function btn_ColsVisible()
  550. {
  551. $.modalOpen({
  552. id: "ColsVisible",
  553. title: _ReportName + " 角色显示栏位",
  554. url: "/SystemManage/CommonReport/ColsVisible?MenuID=" + _MenuID + "&IsCommon=Y&Cols=&" + Math.random(),
  555. width: "1000px",
  556. height: "570px",
  557. btn: null,
  558. callBack: function (iframeId) {
  559. alert("111");
  560. GetMenu();
  561. }
  562. });
  563. }
  564. </script>
  565. <div class="topPanel">
  566. <div class="toolbar">
  567. <div class="btn-group">
  568. <a class="btn btn-primary" onclick="$.reload()"><span class="glyphicon glyphicon-refresh"></span></a>
  569. <a class="btn btn-primary dropdown-text" onclick="btn_Filter()"><i class="fa fa-filter"></i>过滤</a>
  570. </div>
  571. <div class="btn-group">
  572. <a id="NF-DataSource" authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_DataSource()"><i class="fa fa-database"></i>设置数据源</a>
  573. <a id="NF-Cols" authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_Cols()"><i class="fa fa-text-width"></i>列设置</a>
  574. <a id="NF-GridFormat" authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_GridFormat()"><i class="fa fa-bars"></i>个性化设置</a>
  575. <a id="NF-Clear" authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_Clear()"><i class="fa fa-times"></i>清空本菜单所有设置</a>
  576. <a id="NF-ExportAll" authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_ExportAll()"><i class="fa fa-download"></i>全部导出</a>
  577. <a id="NF-WatchPanel" authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_WatchPanel()"><i class="fa fa-download"></i>看板显示</a>
  578. <a id="NF-ColsVisible" authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_ColsVisible()"><i class="fa fa-user"></i>角色显示栏位</a>
  579. @*<a id="NF-GridHeader" authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_GridHeader()"><i class="fa fa-list-alt"></i>多表头设置</a>*@
  580. </div>
  581. <script>$('.toolbar').authorizeButton()</script>
  582. </div>
  583. </div>
  584. <div class="gridPanel" id="gridPanel">
  585. <table id="gridList"></table>
  586. <div id="gridPager"></div>
  587. </div>