I have an html
table which shows all the records fetched from mysql
database. This is my table created:
<table id="employee_details" border="2"></table>
My css:
#employee_details{ display:none; position: absolute; top:15em; left:20em; width:75em; } #employee_details td{ height:60px; text-align: center; width:12em; }
Now, in my javascript
, I create the table rows and cells dynamically, based on the number of records fetched. This is my code snippet:
var count=0; success:function(response){ const arr = JSON.parse(response); table.style.display="block"; for(var i=0; i<arr.length; i++){ var row = table.insertRow(count); var cell = row.insertCell(0); var cell1 = row.insertCell(1); var cell2 = row.insertCell(2); var cell3 = row.insertCell(3); var cell4 = row.insertCell(4); var cell5 = row.insertCell(5); var cell6 = row.insertCell(6); var cell7 = row.insertCell(7); //cell.innerHTML = arr[count] for all the rows count++; } }
So, for each response, it creates a row and inserts the values to its appropriate cells. So, the table height is dynamic (it depends on the number of records fetched).
What I want is the table to have a fixed height (inside a block), inside which there will be a vertical scrollbar which you can use to scroll up and down to view all the records. Along with that the first row table.rows[0]
should be freezed so that it doesn’t move along with the scroll (as it contains the label for each cell).
How do I do that? Any help would be appreciated.
Advertisement
Answer
One way is that you have to wrap your table inside a div and then use overflow: auto;
to that div.
Here is the example https://codepen.io/rk-v/pen/BaRqPoB