All docs
V23.2
24.1
23.2
23.1
22.2
22.1
21.2
21.1
20.2
20.1
19.2
The page you are viewing does not exist in version 19.2.
19.1
The page you are viewing does not exist in version 19.1.
18.2
The page you are viewing does not exist in version 18.2.
18.1
The page you are viewing does not exist in version 18.1.
17.2
The page you are viewing does not exist in version 17.2.

jQuery FileManager - UI Customization

Custom Thumbnails

View Demo

The FileManager UI component allows you to provide custom thumbnails for a file system's items in Thumbnails mode.

DevExtreme FileManager - Custom Thumbnails

Handle the customizeThumbnail function to specify which icons the UI component should display for files and directories. This function returns different icons based on a file system item's type (file or directory), extension, or other parameters.

You can specify an icon in the following formats:

  • The icon's URL.
  • The icon's name if the icon is from the DevExtreme icon library.
  • The icon's CSS class if the icon is from an external icon library (see External Icon Libraries).
  • The icon in the Base64 format.
jQuery
JavaScript
$(function () {
    $("#file-manager").dxFileManager({
        // ...
        itemView: {
            mode: "thumbnails"
        },
        customizeThumbnail: function (fileManagerItem) {
            if (fileManagerItem.isDirectory)
                return "images/thumbnails/folder.svg";
            var fileExtension = fileManagerItem.getExtension();
            switch (fileExtension) {
                case ".txt":
                    return "images/thumbnails/doc-txt.svg";
                case ".rtf":
                    return "images/thumbnails/doc-rtf.svg";
                case ".xml":
                    return "images/thumbnails/doc-xml.svg";
            }
        }
    });
}); 
Angular
app.component.ts
app.component.html
import { DxFileManagerModule } from 'devextreme-angular';    
// ...
export class AppComponent {
    // ...
    customizeIcon(fileManagerItem) {
        if (fileManagerItem.isDirectory)
            return "images/thumbnails/folder.svg";
        const fileExtension = fileManagerItem.getExtension();
        switch (fileExtension) {
            case ".txt":
                return "images/thumbnails/doc-txt.svg";
            case ".rtf":
                return "images/thumbnails/doc-rtf.svg";
            case ".xml":
                return "images/thumbnails/doc-xml.svg";
        }
    }
}
<dx-file-manager id="fileManager"
    [fileSystemProvider]="fileItems"
    [customizeThumbnail]="customizeIcon" >
    <dxo-item-view
        mode="thumbnails">
    </dxo-item-view>
    <!-- ... -->    
</dx-file-manager>
Vue
App.vue
<template>
    <DxFileManager            
        :customize-thumbnail="customizeIcon">
        <DxItemView mode="thumbnails"/>
        <!-- ... -->
    </DxFileManager>
</template>
<script>
import { DxFileManager, DxItemView } from 'devextreme-vue/file-manager';
export default {  
    methods: {
        customizeIcon(fileManagerItem) {
            if (fileManagerItem.isDirectory)
                return 'images/thumbnails/folder.svg';
            const fileExtension = fileManagerItem.getExtension();
            switch (fileExtension) {
                case '.txt':
                    return 'images/thumbnails/doc-txt.svg';
                case '.rtf':
                    return 'images/thumbnails/doc-rtf.svg';
                case '.xml':
                    return 'images/thumbnails/doc-xml.svg';
            }
        }
    }
};
</script>
React
App.js
import React from 'react';
import FileManager, { ItemView } from 'devextreme-react/file-manager';
class App extends React.Component {
    render() {
        return (
        <FileManager
            customizeThumbnail={this.customizeIcon}>
            <ItemView
                mode="thumbnails"
            />
            {/* ... */}
        </FileManager>
        );
    }
    customizeIcon(fileManagerItem) {
        if (fileManagerItem.isDirectory)
            return 'images/thumbnails/folder.svg';
        const fileExtension = fileManagerItem.getExtension();
        switch (fileExtension) {
            case '.txt':
                return 'images/thumbnails/doc-txt.svg';
            case '.rtf':
                return 'images/thumbnails/doc-rtf.svg';
            case '.xml':
                return 'images/thumbnails/doc-xml.svg';
        }
    }
}