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

    How to add router links to qtable rows?

    Help
    2
    2
    1656
    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.
    • M
      mecjos last edited by

      This post is deleted!
      1 Reply Last reply Reply Quote 0
      • T
        turigeza last edited by turigeza

        You can use the row-click event. Or otherwise you have to use the scoped slot body or body-cell. https://quasar.dev/vue-components/table#Example--Body-cell-slot

        See pen
        https://codepen.io/turigeza/pen/gOaGEQa?editors=1010

        <!--
          Forked from:
          https://quasar.dev/vue-components/table#Example--Basic
        -->
        <div id="q-app">
          <div class="q-pa-md">
            <q-table
              @row-click="goTo"
              title="Treats"
              :data="data"
              :columns="columns"
              row-key="name"
            ></q-table>
          </div>
        </div>
        
        new Vue({
          el: '#q-app',
          data () {
            return {
              columns: [
                {
                  name: 'name',
                  required: true,
                  label: 'Dessert (100g serving)',
                  align: 'left',
                  field: row => row.name,
                  format: val => `${val}`,
                  sortable: true
                },
                { name: 'calories', align: 'center', label: 'Calories', field: 'calories', sortable: true },
                { name: 'fat', label: 'Fat (g)', field: 'fat', sortable: true },
                { name: 'carbs', label: 'Carbs (g)', field: 'carbs' },
                { name: 'protein', label: 'Protein (g)', field: 'protein' },
                { name: 'sodium', label: 'Sodium (mg)', field: 'sodium' },
                { name: 'calcium', label: 'Calcium (%)', field: 'calcium', sortable: true, sort: (a, b) => parseInt(a, 10) - parseInt(b, 10) },
                { name: 'iron', label: 'Iron (%)', field: 'iron', sortable: true, sort: (a, b) => parseInt(a, 10) - parseInt(b, 10) }
              ],
              data: [
                {
                  name: 'Frozen Yogurt',
                  calories: 159,
                  fat: 6.0,
                  carbs: 24,
                  protein: 4.0,
                  sodium: 87,
                  calcium: '14%',
                  iron: '1%'
                },
                {
                  name: 'Ice cream sandwich',
                  calories: 237,
                  fat: 9.0,
                  carbs: 37,
                  protein: 4.3,
                  sodium: 129,
                  calcium: '8%',
                  iron: '1%'
                },
                {
                  name: 'Eclair',
                  calories: 262,
                  fat: 16.0,
                  carbs: 23,
                  protein: 6.0,
                  sodium: 337,
                  calcium: '6%',
                  iron: '7%'
                },
                {
                  name: 'Cupcake',
                  calories: 305,
                  fat: 3.7,
                  carbs: 67,
                  protein: 4.3,
                  sodium: 413,
                  calcium: '3%',
                  iron: '8%'
                },
                {
                  name: 'Gingerbread',
                  calories: 356,
                  fat: 16.0,
                  carbs: 49,
                  protein: 3.9,
                  sodium: 327,
                  calcium: '7%',
                  iron: '16%'
                },
                {
                  name: 'Jelly bean',
                  calories: 375,
                  fat: 0.0,
                  carbs: 94,
                  protein: 0.0,
                  sodium: 50,
                  calcium: '0%',
                  iron: '0%'
                },
                {
                  name: 'Lollipop',
                  calories: 392,
                  fat: 0.2,
                  carbs: 98,
                  protein: 0,
                  sodium: 38,
                  calcium: '0%',
                  iron: '2%'
                },
                {
                  name: 'Honeycomb',
                  calories: 408,
                  fat: 3.2,
                  carbs: 87,
                  protein: 6.5,
                  sodium: 562,
                  calcium: '0%',
                  iron: '45%'
                },
                {
                  name: 'Donut',
                  calories: 452,
                  fat: 25.0,
                  carbs: 51,
                  protein: 4.9,
                  sodium: 326,
                  calcium: '2%',
                  iron: '22%'
                },
                {
                  name: 'KitKat',
                  calories: 518,
                  fat: 26.0,
                  carbs: 65,
                  protein: 7,
                  sodium: 54,
                  calcium: '12%',
                  iron: '6%'
                }
              ]
            }
          },
          methods: {
            goTo(event, row){
              // Here you can navigate to where ever you have to
              // this.$router.push('home')
              console.log(row);
            }
          }
        })
        
        1 Reply Last reply Reply Quote 0
        • First post
          Last post