Solved

Need help freezing the header row and left most column in my html table.

Posted on 2014-01-13
1
1,173 Views
Last Modified: 2014-01-15
I have read and tried to use some of the solutions for my problem that I have seen in other post, but have yet to get it to work properly.  The code below is my attempt to freeze the header row (I have yet to try the left most column).

     I know basically no html and have been trying to cut, paste and figure this out as I go.  Can someone please show me where I got it wrong?
    Private Sub btnSaveOutputFile_Click(sender As Object, e As EventArgs) Handles btnSaveOutputFile.Click
        'Saves known good and actual values to output.txt
        Dim objWriter As System.IO.StreamWriter
        Dim FirstTerm As String = String.Empty
        Dim SecondTerm As String = String.Empty
        Dim GSum As String = String.Empty
        Dim ASum As String = String.Empty
        Dim GProduct As String = String.Empty
        Dim GQuotient As String = String.Empty
        Dim AProduct As String = String.Empty
        Dim LineNum As String = String.Empty
        Dim AQuotient As String = String.Empty
        Dim sHTML As String

        'delete old file.
        File.Delete("output.html")
        'create new file.
        objWriter = System.IO.File.AppendText("output.html")

        sHTML = "<style style=""text/css"">"
        sHTML &= "  	.hoverTable{font-size:10pt;}"
        sHTML &= "  	.hoverTable{width:100%;border-collapse:collapse;}"
        sHTML &= "	.hoverTable td{padding:7px; border:#4e95f4 1px solid;}"
        sHTML &= "	/*  Define the background color for all the ODD background rows  */"
        sHTML &= "	.hoverTable tr:nth-child(odd){background: #b8d1f3;}"
        sHTML &= "	/*  Define the background color for all the EVEN background rows  */"
        sHTML &= "	.hoverTable tr:nth-child(even){background: #dae5f4;}"
        sHTML &= "	/* Define the hover highlight color for the table row */"
        sHTML &= "    .hoverTable tr:hover {background-color: #ffff99;}"
        sHTML &= "</style>"
        sHTML &= "<table class=""hoverTable"">"
        sHTML &= "<tr><th style=""vertical-align:top;text-align:left;height:20px;"">"
        sHTML &= "<div style=""position: fixed;top: expression(this.offsetParent.scrollTop);>"

        For Each col As DataGridViewColumn In DataGridView1.Columns
            sHTML &= "<td>" & col.HeaderText & "</td>"
        Next

        sHTML &= "</div></th></tr>"

        For Each row As DataGridViewRow In DataGridView1.Rows
            LineNum = row.Cells(0).Value
            FirstTerm = row.Cells(1).Value
            SecondTerm = row.Cells(2).Value
            GSum = row.Cells(3).Value
            ASum = row.Cells(4).Value
            GProduct = row.Cells(5).Value
            AProduct = row.Cells(6).Value
            GQuotient = row.Cells(7).Value
            AQuotient = row.Cells(8).Value

            sHTML &= "<tr><td style=""overflow: auto;"">" & LineNum & "</td><td style=""overflow: auto;"">" & FirstTerm & "</td><td style=""overflow: auto;"">" & SecondTerm & "</td><td style=""overflow: auto;"">" & GSum & _
                "</td><td style=""overflow: auto;"">" & ASum & "</td><td style=""overflow: auto;"">" & GProduct & "</td><td style=""overflow: auto;"">" & AProduct & "</td><td style=""overflow: auto;"">" & GQuotient & _
                "</td><td style=""overflow: auto;"">" & AQuotient & "</td></tr>"
        Next

        objWriter.WriteLine(sHTML)

        Me.Text = "HTML conversion completed"

        'close file.
        objWriter.Flush()
        objWriter.Close()

        System.Diagnostics.Process.Start("output.html")

    End Sub

Open in new window

0
Comment
Question by:NevSoFly
1 Comment
 
LVL 27

Accepted Solution

by:
Ark earned 500 total points
ID: 39781259
To freeze header row with css is not so difficult. But to freeze first column you need some javascript/jquery. See http://fixed-header-using-jquery.blogspot.ru/2009/05/scrollable-table-with-fixed-header-and.html (see demo http://acatalept.com/common/test/fixed-table.html)
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

Suggested Solutions

This is a PowerShell web interface I use to manage some task as a network administrator. Clicking an action button on the left frame will display a form in the middle frame to input some data in textboxes, process this data in PowerShell and display…
This article describes how to create custom column layout styles for Bootstrap. The article uses 5 columns to illustrate the concept, but the principle can be extended to any number of columns.
In this tutorial viewers will learn how to embed an audio file in a webpage using HTML5. Ensure your DOCTYPE declaration is set to HTML5: : The declaration should display (CODE) HTML5 is supported by the most recent versions of all major browsers…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now