Home > Software engineering >  Uncheck all treeview checkboxes
Uncheck all treeview checkboxes

Time:07-03

I have a v-treeview component (Vuetify 2.6.7)

<v-treeview
            
            v-model="location_tree"
            ref="location_tree"
            :search="location_search"
            selectable
            dense=true
            open-on-click=true
            expand-icon="$plus"
            selected-color="success"
            :items="locations"
            selection-type="all"
            transition=true
            @input="location_tree_update"
></v-treeview>

How can I uncheck all checkboxes with a some button click?

CodePudding user response:

you just need to empty the array you passed to v-model on a button click like location_tree.splice(0) or location_tree = [].

check the example below:

Vue.config.productionTip = false;
Vue.config.devtools = false;

new Vue({
  el: '#app',
  vuetify: new Vuetify(),
  data: () => ({
    selection: [],
    items: [{
        id: 1,
        name: 'Applications :',
        children: [{
            id: 2,
            name: 'Calendar : app'
          },
          {
            id: 3,
            name: 'Chrome : app'
          },
          {
            id: 4,
            name: 'Webstorm : app'
          },
        ],
      },
      {
        id: 5,
        name: 'Documents :',
        children: [{
            id: 6,
            name: 'vuetify :',
            children: [{
              id: 7,
              name: 'src :',
              children: [{
                  id: 8,
                  name: 'index : ts'
                },
                {
                  id: 9,
                  name: 'bootstrap : ts'
                },
              ],
            }, ],
          },
          {
            id: 10,
            name: 'material2 :',
            children: [{
              id: 11,
              name: 'src :',
              children: [{
                  id: 12,
                  name: 'v-btn : ts'
                },
                {
                  id: 13,
                  name: 'v-card : ts'
                },
                {
                  id: 14,
                  name: 'v-window : ts'
                },
              ],
            }, ],
          },
        ],
      },
      {
        id: 15,
        name: 'Downloads :',
        children: [{
            id: 16,
            name: 'October : pdf'
          },
          {
            id: 17,
            name: 'November : pdf'
          },
          {
            id: 18,
            name: 'Tutorial : html'
          },
        ],
      },
      {
        id: 19,
        name: 'Videos :',
        children: [{
            id: 20,
            name: 'Tutorials :',
            children: [{
                id: 21,
                name: 'Basic layouts : mp4'
              },
              {
                id: 22,
                name: 'Advanced techniques : mp4'
              },
              {
                id: 23,
                name: 'All about app : dir'
              },
            ],
          },
          {
            id: 24,
            name: 'Intro : mov'
          },
          {
            id: 25,
            name: 'Conference introduction : avi'
          },
        ],
      },
    ],
  }),
});
<link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/@mdi/[email protected]/css/materialdesignicons.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/vuetify.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vuetify.js"></script>

<div id="app">
  <v-app>
    <v-container>
      <v-btn color="primary" @click="selection.splice(0)">clear selection</v-btn>
      <v-treeview v-model="selection" selectable :items="items"></v-treeview>
    </v-container>
  </v-app>
</div>

  • Related