·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> ReportViewer2010冻结行列

ReportViewer2010冻结行列

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

ReportViewer2010冻结行列

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="NewTrackingVer.aspx.cs" 2     Inherits="GeoOilRes.RDLC.NewTrackingVer" %> 3  4 <%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 5     Namespace="Microsoft.Reporting.WebForms" TagPRefix="rsweb" %> 6 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 7 <html xmlns="http://www.w3.org/1999/xhtml"> 8 <head id="Head1" runat="server"> 9     <title></title>10     <script src="../../Scripts/jquery-1.8.1.min.js" type="text/javascript"></script>11     <script src="../Scripts/rdlc-function.js" type="text/Javascript"></script>12     <script type="text/javascript">13            $(function () {14             var ReportTable = $('#VisibleReportContentReportViewer1_ctl10');15             if (ReportTable.html().length > 0 ) {16                 var w = pageWidth();17                 var h = pageHeight();18                 var tableID = "RdlcTable";19                 $('#VisibleReportContentReportViewer1_ctl10 table table table table:last').attr("ID", tableID);20                 freezeTable(tableID, 5, 4, w, h);21                 var flag = false;22                 $(window).resize(function () {23                     if (flag)24                         return;25                     setTimeout(function () {26                         adjustTableSize(tableID, w, h);27                         flag = false;28                     }, 100);29                     flag = true;30                 });31             }32         });33 </script>34 </head>35 <body style="padding: 0; margin: 0; overflow: hidden; background-color: white;">36     <form id="form1" runat="server" style="text-align: left;">37     <asp:ScriptManager ID="ScriptManager1" runat="server">38     </asp:ScriptManager>           <asp:UpdatePanel ID="UpdatePanel1" runat="server" RenderMode="Inline">39         <ContentTemplate>40             <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt"41                 InteractiveDeviceInfos="(集合)" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt"42                 Width="100%" Height="100%" ShowToolBar="true" ShowBackButton="False" ShowFindControls="False"43                 ShowRefreshButton="False" HyperlinkTarget="_self">44             </rsweb:ReportViewer>45         </ContentTemplate>46         <Triggers>47             <asp:PostBackTrigger ControlID="ReportViewer1" />48         </Triggers>49     </asp:UpdatePanel>50     </form>51     </body>52 </html>
  1 /*  2 * 锁定表头和列  3 *   4 * 参数定义  5 *     table - 要锁定的表格元素或者表格ID  6 *     freezeRowNum - 要锁定的前几行行数,如果行不锁定,则设置为0  7 *     freezeColumnNum - 要锁定的前几列列数,如果列不锁定,则设置为0  8 *     width - 表格的滚动区域宽度  9 *     height - 表格的滚动区域高度 10 */ 11 function freezeTable(table, freezeRowNum, freezeColumnNum, width, height) { 12     freezeRowNum += 1; 13     freezeColumnNum += 1; 14     if (typeof (freezeRowNum) == 'string') 15         freezeRowNum = parseInt(freezeRowNum) 16  17     if (typeof (freezeColumnNum) == 'string') 18         freezeColumnNum = parseInt(freezeColumnNum) 19  20     var tableId; 21     if (typeof (table) == 'string') { 22         tableId = table; 23         table = $('#' + tableId); 24     } else 25         tableId = table.attr('id'); 26  27     var divTableLayout = $("#" + tableId + "_tableLayout"); 28  29     if (divTableLayout.length != 0) { 30         divTableLayout.before(table); 31         divTableLayout.empty(); 32     } else { 33         table.after("<div id='" + tableId + "_tableLayout' style='overflow:hidden;height:" + height + "px; width:" + width + "px;'></div>"); 34  35         divTableLayout = $("#" + tableId + "_tableLayout"); 36     } 37  38     var html = ''; 39     if (freezeRowNum > 0 && freezeColumnNum > 0) 40         html += '<div id="' + tableId + '_tableFix" style="padding: 0px;"></div>'; 41  42     if (freezeRowNum > 0) 43         html += '<div id="' + tableId + '_tableHead" style="padding: 0px;"></div>'; 44  45     if (freezeColumnNum > 0) 46         html += '<div id="' + tableId + '_tableColumn" style="padding: 0px;"></div>'; 47  48     html += '<div id="' + tableId + '_tableData" style="padding: 0px;"></div>'; 49  50  51     $(html).appendTo("#" + tableId + "_tableLayout"); 52  53     var divTableFix = freezeRowNum > 0 && freezeColumnNum > 0 ? $("#" + tableId + "_tableFix") : null; 54     var divTableHead = freezeRowNum > 0 ? $("#" + tableId + "_tableHead") : null; 55     var divTableColumn = freezeColumnNum > 0 ? $("#" + tableId + "_tableColumn") : null; 56     var divTableData = $("#" + tableId + "_tableData"); 57  58     divTableData.append(table); 59  60     if (divTableFix != null) { 61         var tableFixClone = table.clone(true); 62         tableFixClone.attr("id", tableId + "_tableFixClone"); 63         divTableFix.append(tableFixClone); 64     } 65  66     if (divTableHead != null) { 67         var tableHeadClone = table.clone(true); 68         tableHeadClone.attr("id", tableId + "_tableHeadClone"); 69         divTableHead.append(tableHeadClone); 70     } 71  72     if (divTableColumn != null) { 73         var tableColumnClone = table.clone(true); 74         tableColumnClone.attr("id", tableId + "_tableColumnClone"); 75         divTableColumn.append(tableColumnClone); 76     } 77  78     $("#" + tableId + "_tableLayout table").CSS("margin", "0"); 79  80     if (freezeRowNum > 0) { 81         var HeadHeight = 0; 82         var ignoreRowNum = 0; 83         $("#" + tableId + "_tableHead tr:lt(" + freezeRowNum + ")").each(function () { 84             if (ignoreRowNum > 0) 85                 ignoreRowNum--; 86             else { 87                 var td = $(this).find('td:first, th:first'); 88                 HeadHeight += td.outerHeight(true); 89  90                 ignoreRowNum = td.attr('rowSpan'); 91                 if (typeof (ignoreRowNum) == 'undefined') 92                     ignoreRowNum = 0; 93                 else 94                     ignoreRowNum = parseInt(ignoreRowNum) - 1; 95             } 96         }); 97         HeadHeight += 2; 98  99         divTableHead.css("height", HeadHeight);100         divTableFix != null && divTableFix.css("height", HeadHeight);101     }102 103     if (freezeColumnNum > 0) {104         var ColumnsWidth = 0;105         var ColumnsNumber = 0;106         $("#" + tableId + "_tableColumn tr:eq(" + freezeRowNum + ")").find("td:lt(" + freezeColumnNum + "), th:lt(" + freezeColumnNum + ")").each(function () {107             if (ColumnsNumber >= freezeColumnNum)108                 return;109 110             ColumnsWidth += $(this).outerWidth(true);111 112             ColumnsNumber += $(this).attr('colSpan') ? parseInt($(this).attr('colSpan')) : 1;113         });114         ColumnsWidth += 2;115 116         divTableColumn.css("width", ColumnsWidth);117         divTableFix != null && divTableFix.css("width", ColumnsWidth);118     }119 120     divTableData.scroll(function () {121         divTableHead != null && divTableHead.scrollLeft(divTableData.scrollLeft());122 123         divTableColumn != null && divTableColumn.scrollTop(divTableData.scrollTop());124     });125 126     divTableFix != null && divTableFix.css({ "overflow": "hidden", "background-color": "white", "position": "absolute", "z-index": "50" });127     divTableHead != null && divTableHead.css({ "overflow": "hidden", "background-color": "white", "width": width - 17, "position": "absolute", "z-index": "45" });128     divTableColumn != null && divTableColumn.css({ "overflow": "hidden", "background-color": "white", "height": height - 17, "position": "absolute", "z-index": "40" });129     divTableData.css({ "overflow": "scroll", "wid