• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    asp.net实现固定GridView标题栏的方法(冻结列功能)

    本文实例讲述了asp.net实现固定GridView标题栏的方法。分享给大家供大家参考,具体如下:

    %@ Page Language="C#" %>
    %@ Import Namespace="System.Data" %>
    !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    script runat="server">
      protected void Page_Load(object sender, EventArgs e)
      {
        DataTable t = new DataTable();
        t.Columns.Add("序号", typeof(int));
        t.Columns.Add("材料", typeof(string));
        t.Columns.Add("单价", typeof(decimal));
        for (int i = 1; i = 10; i++)
          t.Columns.Add("库存" + i, typeof(int));
        Random rnd = new Random();
        for (int i = 0; i  80; i++)
        {
          DataRow row = t.NewRow();
          row["序号"] = i + 1;
          row["材料"] = Guid.NewGuid().ToString().Substring(0, 13).ToUpper();
          row["单价"] = rnd.NextDouble() * 100;
          for (int j = 1; j = 10; j++)
            row["库存" + j] = rnd.Next(10000);
          t.Rows.Add(row);
        }
        GridView1.AutoGenerateColumns = false;
        foreach (DataColumn c in t.Columns)
        {
          BoundField bf = new BoundField();
          bf.DataField = c.ColumnName;
          bf.HeaderText = c.ColumnName;
          if (c.DataType == typeof(decimal))
            bf.DataFormatString = "{0:#,0.00}";
          else if (c.DataType == typeof(int))
            bf.DataFormatString = "{0:#,0}";
          bf.ItemStyle.HorizontalAlign =
            (!string.IsNullOrEmpty(bf.DataFormatString)) ?
            HorizontalAlign.Right : HorizontalAlign.Center;
          GridView1.Columns.Add(bf);
        }
        GridView1.DataSource = t;
        GridView1.DataBind();
      }
    /script>
    html xmlns="http://www.w3.org/1999/xhtml">
    head runat="server">
      title>/title>
      style type="text/css">
      .altRow { background-color: #ddddff; }
      /style>
      link href="superTables.css" rel="stylesheet" type="text/css" />
      script type="text/javascript" src="jquery-1.3.1.js">/script>
      script type="text/javascript" src="superTables.js">/script>
      script type="text/javascript" src="jquery.superTable.js">/script>
      script type="text/javascript">
        $(function() {
          $("#GridView1").toSuperTable({ width: "640px", height: "480px", fixedCols: 2 })
          .find("tr:even").addClass("altRow");
        });
      /script>
    /head>
    body>
      form id="form1" runat="server">
      asp:GridView ID="GridView1" runat="server" Font-Size="9pt" EnableViewState="false">
      /asp:GridView>
      /form>
    /body>
    /html>
    
    
    // Super Tables Plugin for jQuery - MIT Style License
    // Copyright (c) 2009 Jeffrey Lee --- blog.darkthread.net
    //
    // A wrapper for Matt Murphy's Super Tables http://www.matts411.com/post/super_tables/
    //
    // Contributors:
    //
    ////// TO CALL:
    // $("...").toSuperTable(options)
    //
    ////// OPTIONS: (order does not matter )
    // cssSkin : string ( eg. "sDefault", "sSky", "sOrange", "sDark" )
    // headerRows : integer ( default is 1 )
    // fixedCols : integer ( default is 0 )
    // colWidths : integer array ( use -1 for auto sizing )
    // onStart : function ( any this.variableNameHere variables you create here can be used later ( eg. onFinish function ) )
    // onFinish : function ( all this.variableNameHere variables created in this script can be used in this function )
    // margin, padding, width, height, overflow...: Styles for "fakeContainer"
    //
    ////// Example:
    // $("#GridView1").toSuperTable(
    //       { width: "640px", height: "480px", fixedCols: 2,
    //        onFinish: function() { alert('Done!'); } })
    // jquery.superTable.js
    (function($) {
      $.fn.extend(
          {
            toSuperTable: function(options) {
              var setting = $.extend(
              {
                width: "640px", height: "320px",
                margin: "10px", padding: "0px",
                overflow: "hidden", colWidths: undefined,
                fixedCols: 0, headerRows: 1,
                onStart: function() { },
                onFinish: function() { },
                cssSkin: "sSky"
              }, options);
              return this.each(function() {
                var q = $(this);
                var id = q.attr("id");
                q.removeAttr("style").wrap("div id='" + id + "_box'>/div>");
                var nonCssProps = ["fixedCols", "headerRows", "onStart", "onFinish", "cssSkin", "colWidths"];
                var container = $("#" + id + "_box");
                for (var p in setting) {
                  if ($.inArray(p, nonCssProps) == -1) {
                    container.css(p, setting[p]);
                    delete setting[p];
                  }
                }
                var mySt = new superTable(id, setting);
              });
            }
          });
    })(jQuery);
    
    
    // Super Tables v0.30 - MIT Style License
    // Copyright (c) 2008 Matt Murphy --- www.matts411.com
    //
    // Contributors:
    // Joe Gallo
    ////// TO CALL:
    // new superTable([string] tableId, [object] options);
    //
    ////// OPTIONS: (order does not matter )
    // cssSkin : string ( eg. "sDefault", "sSky", "sOrange", "sDark" )
    // headerRows : integer ( default is 1 )
    // fixedCols : integer ( default is 0 )
    // colWidths : integer array ( use -1 for auto sizing )
    // onStart : function ( any this.variableNameHere variables you create here can be used later ( eg. onFinish function ) )
    // onFinish : function ( all this.variableNameHere variables created in this script can be used in this function )
    //
    ////// EXAMPLES:
    // var myST = new superTable("myTableId");
    //
    // var myST = new superTable("myTableId", {
    //   cssSkin : "sDefault",
    //   headerRows : 1,
    //   fixedCols : 2,
    //   colWidths : [100, 230, 220, -1, 120, -1, -1, 120],
    //   onStart : function () {
    //     this.start = new Date();
    //   },
    //   onFinish : function () {
    //     alert("Finished... " + ((new Date()) - this.start) + "ms.");
    //   }
    // });
    //
    ////// ISSUES / NOTES:
    // 1. No quirksmode support (officially, but still should work)
    // 2. Element id's may be duplicated when fixedCols > 0, causing getElementById() issues
    // 3. Safari will render the header row incorrectly if the fixed header row count is 1 and there is a colspan > 1 in one
    //   or more of the cells (fix available)
    ////////////superTables.js///////////
    var superTable = function (tableId, options) {
    /////* Initialize */
      options = options || {};
      this.cssSkin = options.cssSkin || "";
      this.headerRows = parseInt(options.headerRows || "1");
      this.fixedCols = parseInt(options.fixedCols || "0");
      this.colWidths = options.colWidths || [];
      this.initFunc = options.onStart || null;
      this.callbackFunc = options.onFinish || null;
      this.initFunc  this.initFunc();
    /////* Create the framework dom */
      this.sBase = document.createElement("DIV");
      this.sFHeader = this.sBase.cloneNode(false);
      this.sHeader = this.sBase.cloneNode(false);
      this.sHeaderInner = this.sBase.cloneNode(false);
      this.sFData = this.sBase.cloneNode(false);
      this.sFDataInner = this.sBase.cloneNode(false);
      this.sData = this.sBase.cloneNode(false);
      this.sColGroup = document.createElement("COLGROUP");
      this.sDataTable = document.getElementById(tableId);
      this.sDataTable.style.margin = "0px"; /* Otherwise looks bad */
      if (this.cssSkin !== "") {
        this.sDataTable.className += " " + this.cssSkin;
      }
      if (this.sDataTable.getElementsByTagName("COLGROUP").length > 0) {
        this.sDataTable.removeChild(this.sDataTable.getElementsByTagName("COLGROUP")[0]); /* Making our own */
      }
      this.sParent = this.sDataTable.parentNode;
      this.sParentHeight = this.sParent.offsetHeight;
      this.sParentWidth = this.sParent.offsetWidth;
    /////* Attach the required classNames */
      this.sBase.className = "sBase";
      this.sFHeader.className = "sFHeader";
      this.sHeader.className = "sHeader";
      this.sHeaderInner.className = "sHeaderInner";
      this.sFData.className = "sFData";
      this.sFDataInner.className = "sFDataInner";
      this.sData.className = "sData";
    /////* Clone parts of the data table for the new header table */
      var alpha, beta, touched, clean, cleanRow, i, j, k, m, n, p;
      this.sHeaderTable = this.sDataTable.cloneNode(false);
      if (this.sDataTable.tHead) {
        alpha = this.sDataTable.tHead;
        this.sHeaderTable.appendChild(alpha.cloneNode(false));
        beta = this.sHeaderTable.tHead;
      } else {
        alpha = this.sDataTable.tBodies[0];
        this.sHeaderTable.appendChild(alpha.cloneNode(false));
        beta = this.sHeaderTable.tBodies[0];
      }
      alpha = alpha.rows;
      for (i=0; ithis.headerRows; i++) {
        beta.appendChild(alpha[i].cloneNode(true));
      }
      this.sHeaderInner.appendChild(this.sHeaderTable);
      if (this.fixedCols > 0) {
        this.sFHeaderTable = this.sHeaderTable.cloneNode(true);
        this.sFHeader.appendChild(this.sFHeaderTable);
        this.sFDataTable = this.sDataTable.cloneNode(true);
        this.sFDataInner.appendChild(this.sFDataTable);
      }
    /////* Set up the colGroup */
      alpha = this.sDataTable.tBodies[0].rows;
      for (i=0, j=alpha.length; ij; i++) {
        clean = true;
        for (k=0, m=alpha[i].cells.length; km; k++) {
          if (alpha[i].cells[k].colSpan !== 1 || alpha[i].cells[k].rowSpan !== 1) {
            i += alpha[i].cells[k].rowSpan - 1;
            clean = false;
            break;
          }
        }
        if (clean === true) break; /* A row with no cells of colSpan > 1 || rowSpan > 1 has been found */
      }
      cleanRow = (clean === true) ? i : 0; /* Use this row index to calculate the column widths */
      for (i=0, j=alpha[cleanRow].cells.length; ij; i++) {
        if (i === this.colWidths.length || this.colWidths[i] === -1) {
          this.colWidths[i] = alpha[cleanRow].cells[i].offsetWidth;
        }
      }
      for (i=0, j=this.colWidths.length; ij; i++) {
        this.sColGroup.appendChild(document.createElement("COL"));
        this.sColGroup.lastChild.setAttribute("width", this.colWidths[i]);
      }
      this.sDataTable.insertBefore(this.sColGroup.cloneNode(true), this.sDataTable.firstChild);
      this.sHeaderTable.insertBefore(this.sColGroup.cloneNode(true), this.sHeaderTable.firstChild);
      if (this.fixedCols > 0) {
        this.sFDataTable.insertBefore(this.sColGroup.cloneNode(true), this.sFDataTable.firstChild);
        this.sFHeaderTable.insertBefore(this.sColGroup.cloneNode(true), this.sFHeaderTable.firstChild);
      }
    /////* Style the tables individually if applicable */
      if (this.cssSkin !== "") {
        this.sDataTable.className += " " + this.cssSkin + "-Main";
        this.sHeaderTable.className += " " + this.cssSkin + "-Headers";
        if (this.fixedCols > 0) {
          this.sFDataTable.className += " " + this.cssSkin + "-Fixed";
          this.sFHeaderTable.className += " " + this.cssSkin + "-FixedHeaders";
        }
      }
    /////* Throw everything into sBase */
      if (this.fixedCols > 0) {
        this.sBase.appendChild(this.sFHeader);
      }
      this.sHeader.appendChild(this.sHeaderInner);
      this.sBase.appendChild(this.sHeader);
      if (this.fixedCols > 0) {
        this.sFData.appendChild(this.sFDataInner);
        this.sBase.appendChild(this.sFData);
      }
      this.sBase.appendChild(this.sData);
      this.sParent.insertBefore(this.sBase, this.sDataTable);
      this.sData.appendChild(this.sDataTable);
    /////* Align the tables */
      var sDataStyles, sDataTableStyles;
      this.sHeaderHeight = this.sDataTable.tBodies[0].rows[(this.sDataTable.tHead) ? 0 : this.headerRows].offsetTop;
      sDataTableStyles = "margin-top: " + (this.sHeaderHeight * -1) + "px;";
      sDataStyles = "margin-top: " + this.sHeaderHeight + "px;";
      sDataStyles += "height: " + (this.sParentHeight - this.sHeaderHeight) + "px;";
      if (this.fixedCols > 0) {
        /* A collapsed table's cell's offsetLeft is calculated differently (w/ or w/out border included) across broswers - adjust: */
        this.sFHeaderWidth = this.sDataTable.tBodies[0].rows[cleanRow].cells[this.fixedCols].offsetLeft;
        if (window.getComputedStyle) {
          alpha = document.defaultView;
          beta = this.sDataTable.tBodies[0].rows[0].cells[0];
          if (navigator.taintEnabled) { /* If not Safari */
            this.sFHeaderWidth += Math.ceil(parseInt(alpha.getComputedStyle(beta, null).getPropertyValue("border-right-width")) / 2);
          } else {
            this.sFHeaderWidth += parseInt(alpha.getComputedStyle(beta, null).getPropertyValue("border-right-width"));
          }
        } else if (/*@cc_on!@*/0) { /* Internet Explorer */
          alpha = this.sDataTable.tBodies[0].rows[0].cells[0];
          beta = [alpha.currentStyle["borderRightWidth"], alpha.currentStyle["borderLeftWidth"]];
          if(/px/i.test(beta[0])  /px/i.test(beta[1])) {
            beta = [parseInt(beta[0]), parseInt(beta[1])].sort();
            this.sFHeaderWidth += Math.ceil(parseInt(beta[1]) / 2);
          }
        }
        /* Opera 9.5 issue - a sizeable data table may cause the document scrollbars to appear without this: */
        if (window.opera) {
          this.sFData.style.height = this.sParentHeight + "px";
        }
        this.sFHeader.style.width = this.sFHeaderWidth + "px";
        sDataTableStyles += "margin-left: " + (this.sFHeaderWidth * -1) + "px;";
        sDataStyles += "margin-left: " + this.sFHeaderWidth + "px;";
        sDataStyles += "width: " + (this.sParentWidth - this.sFHeaderWidth) + "px;";
      } else {
        sDataStyles += "width: " + this.sParentWidth + "px;";
      }
      this.sData.style.cssText = sDataStyles;
      this.sDataTable.style.cssText = sDataTableStyles;
    /////* Set up table scrolling and IE's onunload event for garbage collection */
      (function (st) {
        if (st.fixedCols > 0) {
          st.sData.onscroll = function () {
            st.sHeaderInner.style.right = st.sData.scrollLeft + "px";
            st.sFDataInner.style.top = (st.sData.scrollTop * -1) + "px";
          };
        } else {
          st.sData.onscroll = function () {
            st.sHeaderInner.style.right = st.sData.scrollLeft + "px";
          };
        }
        if (/*@cc_on!@*/0) { /* Internet Explorer */
          window.attachEvent("onunload", function () {
            st.sData.onscroll = null;
            st = null;
          });
        }
      })(this);
      this.callbackFunc  this.callbackFunc();
    };
    
    
    /*
    // Super Tables v0.30 - MIT Style License
    // Copyright (c) 2008 Matt Murphy --- www.matts411.com
    //
    // Contributors:
    // Joe Gallo
    ////////////superTables.css////////////////
    */
    .sBase {
      position: relative;
      width: 100%;
      height: 100%;
      overflow: hidden;
    }
    /* HEADERS */
    .sHeader {
      position: absolute;
      z-index: 3;
      background-color: #ffffff;
    }
    .sHeaderInner {
      position: relative;
    }
    .sHeaderInner table {
      border-spacing: 0px 0px !important;
      border-collapse: collapse !important;
      width: 1px !important;
      table-layout: fixed !important;
      background-color: #ffffff; /* Here b/c of Opera 9.25 :( */
    }
    /* HEADERS - FIXED */
    .sFHeader {
      position: absolute;
      z-index: 4;
      overflow: hidden;
    }
    .sFHeader table {
      border-spacing: 0px 0px !important;
      border-collapse: collapse !important;
      width: 1px !important;
      table-layout: fixed !important;
      background-color: #ffffff; /* Here b/c of Opera 9.25 :( */
    }
    /* BODY */
    .sData {
      position: absolute;
      z-index: 2;
      overflow: auto;
      background-color: #ffffff;
    }
    .sData table {
      border-spacing: 0px 0px !important;
      border-collapse: collapse !important;
      width: 1px !important;
      table-layout: fixed !important;
    }
    /* BODY - FIXED */
    .sFData {
      position: absolute;
      z-index: 1;
      background-color: #ffffff;
    }
    .sFDataInner {
      position: relative;
    }
    .sFData table {
      border-spacing: 0px 0px !important;
      border-collapse: collapse !important;
      width: 1px !important;
      table-layout: fixed !important;
    }
    /*
    // Super Tables - Skin Classes
    // Remove if not needed
    */
    /* sDefault */
    .sDefault {
      margin: 0px;
      padding: 0px;
      border: none;
      font-family: Verdana, Arial, sans serif;
      font-size: 0.8em;
    }
    .sDefault th, .sDefault td {
      border: 1px solid #cccccc;
      padding: 3px 6px 3px 4px;
      white-space: nowrap;
    }
    .sDefault th {
      background-color: #e5e5e5;
      border-color: #c5c5c5;
    }
    .sDefault-Fixed {
      background-color: #eeeeee;
      border-color: #c5c5c5;
    }
    /* sSky */
    .sSky {
      margin: 0px;
      padding: 0px;
      border: none;
      font-family: Verdana, Arial, sans serif;
      font-size: 0.8em;
    }
    .sSky th, .sSky td {
      border: 1px solid #9eb6ce;
      padding: 3px 6px 3px 4px;
      white-space: nowrap;
    }
    .sSky th {
      background-color: #CFDCEE;
    }
    .sSky-Fixed {
      background-color: #e4ecf7;
    }
    /* sOrange */
    .sOrange {
      margin: 0px;
      padding: 0px;
      border: none;
      font-family: Verdana, Arial, sans serif;
      font-size: 0.8em;
    }
    .sOrange th, .sOrange td {
      border: 1px solid #cebb9e;
      padding: 3px 6px 3px 4px;
      white-space: nowrap;
    }
    .sOrange th {
      background-color: #ECD8C7;
    }
    .sOrange-Fixed {
      background-color: #f7ede4;
    }
    /* sDark */
    .sDark {
      margin: 0px;
      padding: 0px;
      border: none;
      font-family: Verdana, Arial, sans serif;
      font-size: 0.8em;
      color: #ffffff;
    }
    .sDark th, .sDark td {
      border: 1px solid #555555;
      padding: 3px 6px 3px 4px;
      white-space: nowrap;
    }
    .sDark th {
      background-color: #000000;
    }
    .sDark-Fixed {
      background-color: #222222;
    }
    .sDark-Main {
      background-color: #333333;
    }
    
    

    更多关于asp.net相关内容感兴趣的读者可查看本站专题:《asp.net操作json技巧总结》、《asp.net字符串操作技巧汇总》、《asp.net操作XML技巧总结》、《asp.net文件操作技巧汇总》、《asp.net ajax技巧总结专题》及《asp.net缓存操作技巧总结》。

    希望本文所述对大家asp.net程序设计有所帮助。

    您可能感兴趣的文章:
    • 在ASP.NET 2.0中操作数据之六十四:GridView批量添加数据
    • 在ASP.NET 2.0中操作数据之十:使用 GridView和DetailView实现的主/从报表
    • ASP.NET数据绑定GridView控件使用技巧
    • ASP.NET数据绑定之GridView控件
    • ASP.NET中GridView的文件输出流方式
    • ASP.NET中GridView、DataList、DataGrid三个数据控件foreach遍历用法示例
    • asp.net GridView中使用RadioButton单选按钮的方法
    • asp.net Checbox在GridView中的应用实例分析
    • ASP.NET中GridView 重复表格列合并的实现方法
    上一篇:asp.net实现DropDownList,TreeView,ListBox的无限极分类目录树
    下一篇:厚积薄发,拥抱.NET 2016
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    asp.net实现固定GridView标题栏的方法(冻结列功能) asp.net,实现,固定,GridView,