DevExtreme Vue - Set the Initial Image

By default, the image that the Gallery widget displays initially is the first item of the data source. To specify another item to be initially displayed, assign its index in the dataSource to the selectedIndex option.

jQuery
JavaScript
$(function () {
    $("#galleryContainer").dxGallery({
        dataSource: [
            "https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person1.png",
            "https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person2.png",
            "https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person3.png"
        ],
        height: 300,
        selectedIndex: 2
    });
});
Angular
HTML
TypeScript
<dx-gallery
    [dataSource]="galleryDataSource"
    [height]="300"
    [selectedIndex]="2">
</dx-gallery>
import { DxGalleryModule } from "devextreme-angular";
// ...
export class AppComponent {
    galleryDataSource = [
        "https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person1.png",
        "https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person2.png",
        "https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person3.png"
    ];
}
@NgModule({
    imports: [
        // ...
        DxGalleryModule
    ],
    // ...
})
Vue
<template>
    <DxGallery
        :data-source="dataSource"
        :height="300"
        :selected-index="2"
    />
</template>

<script>
import 'devextreme/dist/css/dx.common.css';
import 'devextreme/dist/css/dx.light.css';

import { DxGallery } from 'devextreme-vue/gallery';

export default {
    components: {
        DxGallery
    },
    data() {
        return {
            dataSource: [
                'https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person1.png',
                'https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person2.png',
                'https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person3.png'
            ]
        };
    }
}
</script>
React
import React from 'react';
import 'devextreme/dist/css/dx.common.css';
import 'devextreme/dist/css/dx.light.css';

import { Gallery } from 'devextreme-react/gallery';

const dataSource = [
    'https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person1.png',
    'https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person2.png',
    'https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person3.png'
];

class App extends React.Component {
    render() {
        return (
            <Gallery
                dataSource={dataSource}
                height={300}
                defaultSelectedIndex={2}
            />
        );
    }
}

export default App;

As an alternative, you can specify the initial image using its data source object. In this case, assign the object to the selectedItem option.

jQuery
JavaScript
const galleryData = [{
    imageAlt: "Maria",
    imageSrc: "https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person1.png"
}, {
    imageAlt: "John",
    imageSrc: "https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person2.png"
}, {
    imageAlt: "Xavier",
    imageSrc: "https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person3.png"
}];

$(function () {
    $("#galleryContainer").dxGallery({
        dataSource: galleryData,
        height: 300,
        selectedItem: galleryData[1]
    });
});
Angular
HTML
TypeScript
<dx-gallery
    [dataSource]="galleryDataSource"
    [height]="300"
    [selectedItem]="selectedItem">
</dx-gallery>
import { DxGalleryModule } from "devextreme-angular";
// ...
export class AppComponent {
    galleryDataSource = [{
        imageAlt: "Maria",
        imageSrc: "https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person1.png"
    }, {
        imageAlt: "John",
        imageSrc: "https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person2.png"
    }, {
        imageAlt: "Xavier",
        imageSrc: "https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person3.png"
    }];
    selectedItem = this.galleryDataSource[1];
}
@NgModule({
    imports: [
        // ...
        DxGalleryModule
    ],
    // ...
})
Vue
<template>
    <DxGallery
        :data-source="galleryData"
        :height="300"
        :selected-item="selectedItem"
    />
</template>

<script>
import 'devextreme/dist/css/dx.common.css';
import 'devextreme/dist/css/dx.light.css';

import { DxGallery } from 'devextreme-vue/gallery';

export default {
    components: {
        DxGallery
    },
    data() {
        return {
            galleryData: [{
                imageAlt: 'Maria',
                imageSrc: 'https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person1.png'
            }, {
                imageAlt: 'John',
                imageSrc: 'https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person2.png'
            }, {
                imageAlt: 'Xavier',
                imageSrc: 'https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person3.png'
            }],
            selectedItem: galleryData[1]
        };
    }
}
</script>
React
import React from 'react';
import 'devextreme/dist/css/dx.common.css';
import 'devextreme/dist/css/dx.light.css';

import { Gallery } from 'devextreme-react/gallery';

const galleryData = [{
    imageAlt: 'Maria',
    imageSrc: 'https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person1.png'
}, {
    imageAlt: 'John',
    imageSrc: 'https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person2.png'
}, {
    imageAlt: 'Xavier',
    imageSrc: 'https://js.devexpress.com/Content/images/doc/19_2/PhoneJS/person3.png'
}];

const selectedItem = galleryData[1];

class App extends React.Component {
    render() {
        return (
            <Gallery
                dataSource={galleryData}
                height={300}
                defaultSelectedItem={selectedItem}
            />
        );
    }
}

export default App;
See Also