In this article I am going to tell how fix make table header freeze using javascript and CSS.
You can see live demo below
You can see live demo below
| Name | Phone | Address | 
|---|---|---|
| table1 data1 | table1 data1 | table1 data1 | 
| table1 data2 | table1 data2 | table1 data1 | 
| table1 data3 | table1 data3 | table1 data1 | 
| table1 data4 | table1 data4 | table1 data1 | 
| table1 data5 | table1 data5 | table1 data1 | 
| table1 data6 | table1 data6 | table1 data1 | 
| table1 data7 | table1 data7 | table1 data1 | 
| table1 data8 | table1 data8 | table1 data1 | 
| table1 data9 | table1 data9 | table1 data1 | 
| table1 data10 | table1 data10 | table1 data1 | 
1: <asp:GridView runat="server" HeaderStyle-CssClass="persist-header" CssClass="persist-area" ID="grdView">
2: <Columns>
3: <asp:TemplateField>
4: <ItemTemplate></ItemTemplate>
5: </asp:TemplateField>
6: <asp:TemplateField>
7: <ItemTemplate></ItemTemplate>
8: </asp:TemplateField>
9: </Columns>
10: </asp:GridView>
Then define floatHeader style like :
   1:   .floatingHeader {
   2:        position: fixed;
   3:        top: 0;
   4:        visibility: hidden;
   5:      }
Finally wirte javasctip code as below: In the below javascript code we are creating a clone of table header and show/hide on the event of scroll.
1: <script>
2: function UpdateTableHeaders() {
3: $(".persist-area").each(function() {
   4:   
5: var el = $(this),
   6:                 offset         = el.offset(),
   7:                 scrollTop      = $(window).scrollTop(),
8: floatingHeader = $(".floatingHeader", this)
   9:   
10: if ((scrollTop > offset.top) && (scrollTop < offset.top + el.height())) {
  11:                 floatingHeader.css({
12: "visibility": "visible"
  13:                 });
14: } else {
  15:                 floatingHeader.css({
16: "visibility": "hidden"
  17:                 });
  18:             };
  19:         });
  20:      }
  21:   
22: // DOM Ready
23: $(function() {
  24:   
25: var clonedHeaderRow;
  26:   
27: $(".persist-area").each(function() {
28: clonedHeaderRow = $(".persist-header", this);
  29:             clonedHeaderRow
  30:               .before(clonedHeaderRow.clone())
31: .css("width", clonedHeaderRow.width())
32: .addClass("floatingHeader");
  33:   
  34:         });
  35:   
  36:         $(window)
  37:          .scroll(UpdateTableHeaders)
38: .trigger("scroll");
  39:   
  40:      });
41: </script>That's it finally you will get a table with freeze header:-).
No comments:
Post a Comment