# Child Rows

Child rows allow for a custom designed output area, namely a hidden child row underneath each row, whose content you are free to set yourself.

When using the \`childRow\` option you must pass a unqiue \`id\` property for each row, which is used to track the current state.

{% hint style="info" %}
If your identifier key is not \`id\`, use the \`uniqueKey\` option to set it.
{% endhint %}

The syntax is identical to that of templates:

Using Scoped Slots:

```markup
 <template v-slot:child_row="props">
  <div><b>First name:</b> {{props.row.first_name}}</div>
  <div><b>Last name:</b> {{props.row.last_name}}</div>
</template>
```

Using a function and (optional) JSX:

```javascript
options:{
    ...
    childRow: function(h, row) {
      return <div>My custom content for row {row.id}</div>
    }
    ...
}
```

Using a component name or a \`.vue\` file: (See [Templates](/vue-tables-2/templates.md#vue-components)  for a complete example)

```javascript
  options:{
    ...
        childRow: 'row-component'
    ...
}
```

When the plugin detects a \`childRow\` function it appends the child rows and prepends to each row an additional toggler column with a \`span\` you can design to your liking.

Example styling (also found in \`style.css\`):

```css
.VueTables__child-row-toggler {
    width: 16px;
    height: 16px;
    line-height: 16px;
    display: block;
    margin: auto;
    text-align: center;
}

.VueTables__child-row-toggler--closed::before {
    content: "+";
}

.VueTables__child-row-toggler--open::before {
    content: "-";
}
```

You can also trigger the child row toggler programmtically. E.g, to toggle the row with an id of 4:

```javascript
this.$refs.myTable.toggleChildRow(4); // replace myTable with your own ref
```

Alternatively, you can use the \`showChildRowToggler\` option to prevent the child row toggler cells from being rendered. (See [Options API](/vue-tables-2/options-api.md))

#### Disabling Specific Child Rows

Sometimes there are some child rows that have no content. You can disable the togglers for these rows by providing the logic to the `disabledChildRows` option, e.g:

```javascript
disabledChildRows: function(row) {
    return row.noContent
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://matanya.gitbook.io/vue-tables-2/child-rows.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
