No More Posting New Topics!

If you have a question or an issue, please start a thread in our Github Discussions Forum.
This forum is closed for new threads/ topics.

Navigation

    Quasar Framework

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search

    q-table height, virtual scroll and sticky headers

    Framework
    1
    5
    2351
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      amoss last edited by amoss

      Hi

      I read the docs and tried to do everything together but it looks like I’m missing something.

      <q-table
         class="my-sticky-virtscroll-table"
         separator="cell"
         :data="data"
         :columns="columns"
         no-data-label="No data to show"
         virtual-scroll
         :pagination.sync="pagination"
         :rows-per-page-options="[0]"     
         :virtual-scroll-sticky-size-start="48"     
         hide-bottom/>
      </q-table>
      
      <style lang="sass">
      .my-sticky-virtscroll-table
        /* height or max-height is important */
        height: 100px
      
        .q-table__top,
        .q-table__bottom,
        thead tr:first-child th /* bg color is important for th; just specify one */
          background-color: #fff
      
        thead tr th
          position: sticky
          z-index: 1
        /* this will be the loading indicator */
        thead tr:last-child th
          /* height of all previous header rows */
          top: 48px
        thead tr:first-child th
          top: 0
      </style>
      
      data () {
        return {
          pagination: {
            rowsPerPage: 0
          },
      

      What I want:
      A table with height down to the bottom of the page (100%?) and if there are more rows than it can show, I should see a scrollbar and the scroll should be virtual.

      The problems are:

      1. I tried height: 100px to see if it has any effect. It’s not, the height is always as the number of rows (a lot) much down from where the page ends. I tried 100%, 300px etc… nothing changed that.
      2. The headers are not sticky (using firefox 72/73 and Chrome 78).
      3. The scroll works down to a certain point and then the data part of the grid becomes “blurry” with no data inside. It keeps scrolling down to the height as the number of rows but no data is shown below a certain row.

      What am I missing? Thanks
      (using quasar 1.8.5)

      1 Reply Last reply Reply Quote 0
      • A
        amoss last edited by amoss

        If I do

        <q-table
                class="tableCss"
        

        and

        .tableCss {
            height: 80vh
          }
        

        then the size of the grid is as expected and virtual scroll works as expected. The sticky headers doesn’t work, obviously.

        I found a codepen for sticky headers and it says

        thead tr:first-child th { 
          position: sticky; 
          top: 0; 
          background: cadetblue; 
          z-index: 1000
        }
        

        From what I gather, it seems that those css “commands” are not affecting the table in any way (even the color of the header is not changed), only the one that I put directly in class property of q-table or in headerStyle of the column.

        1 Reply Last reply Reply Quote 0
        • A
          amoss last edited by

          This post is deleted!
          1 Reply Last reply Reply Quote 0
          • A
            amoss last edited by

            If something is working in codepen but does not work in vscode/my project, what can I check? I’m confused

            1 Reply Last reply Reply Quote 0
            • A
              amoss last edited by

              OK, after changing class to table-class (in qtable) in my project, sticky headers are working.

              1 Reply Last reply Reply Quote 0
              • First post
                Last post