[]
        
(Showing Draft Content)

Wijmo_Grid_Cellmaker.Cellmaker

CellMaker Class

Provides methods for creating cells with custom content such as Buttons, Hyperlinks, Images, Ratings, and Sparklines.

To use these methods, assign their result to a column's Column.cellTemplate property.

Heirarchy

  • CellMaker

Methods

Static makeButton

  • Creates a cell template with a button.

    By default, the button displays the cell's bound text in it. If you want to show a fixed string, set the options.text property to the string you want to show.

    For example, the code below defines a column with button elements. All buttons show the same text ('Click Me') and show an alert when clicked:

    new FlexGrid('#theGrid', {
        autoGenerateColumns: false,
        columns: [
            { binding: 'id', header: 'ID', isReadOnly: true },
            {
                binding: 'country',
                header: 'My Buttons',
                cellTemplate: CellMaker.makeButton({
                    text: 'Click Me', // override bound text
                    click: (e: MouseEvent, ctx: ICellTemplateContext) => {
                        alert('Clicked Button ** ' + ctx.item.country + ' **')
                    }
                })
            }
        ]
    });

    To avoid disrupting the regular tab navigation, the button's tabindex attribute is set to -1 by default.

    If you want to include the buttons in the tab navigation, use the attributes option to set their tabindex attribute to zero. For example:

    new FlexGrid('#theGrid', {
        autoGenerateColumns: false,
        columns: [
            { binding: 'id', header: 'ID', isReadOnly: true },
            {
                binding: 'country',
                header: 'My Buttons',
                cellTemplate: CellMaker.makeButton({
                    text: 'Click Me', // override bound text
                    click: (e: MouseEvent, ctx: ICellTemplateContext) => {
                        alert('Clicked Button ** ' + ctx.item.country + ' **')
                    },
                    attributes: {
                        tabindex: 0 // make button a tab stop
                    }
                })
            }
        ]
    });

    For details on links and button elements, please visit https://css-tricks.com/a-complete-guide-to-links-and-buttons/.

    Parameters

    Returns ICellTemplateFunction

    An ICellTemplateFunction to be assigned to a column's Column.cellTemplate property.

Static makeImage

  • Creates a cell template with an image.

    The cell should be bound to a string containing an image URL.

    For example, the code below defines a column with images located at urls specified by the 'img' member of the data items:

    new FlexGrid('#theGrid', {
        autoGenerateColumns: false,
        columns: [
            { binding: 'id', header: 'ID', isReadOnly: true },
            {
                binding: 'img',
                header: 'Images',
                cssClass: 'cell-img',
                cellTemplate: CellMaker.makeImage({
                    label: 'image for ${item.country}', // accessibility
                    click: (e, ctx) => alert('Clicked image for ' + ctx.item.country)
                })
            }
        ]
    });

    Parameters

    Returns ICellTemplateFunction

    An ICellTemplateFunction to be assigned to a column's Column.cellTemplate property.

  • Creates a cell template with a hyperlink.

    By default, the link displays the cell's bound text in it. If you want to show a fixed string, set the options.text property to the string you want to show.

    For example, the code below defines a column with hyperlink elements. The links show some custom text and link to a url from the cell's data item:

    new FlexGrid('#theGrid', {
        autoGenerateColumns: false,
        columns: [
            { binding: 'id', header: 'ID', isReadOnly: true },
            {
                binding: 'country',
                header: 'My Links',
                cellTemplate: CellMaker.makeLink({
                    text: 'Visit ${item.country}', // override bound text
                    href: '${item.url}', // bound link destination
                    attributes: {
                        tabindex: 0 // make hyperlink a tab stop
                    }
                })
            }
        ]
    });

    To avoid disrupting the regular tab navigation, the hyperlink's tabindex attribute is set to -1 by default.

    If you want to include the hyperlinks in the tab navigation, use the attributes option to set their tabindex attribute to zero. For example:

    new FlexGrid('#theGrid', {
        autoGenerateColumns: false,
        columns: [
            { binding: 'id', header: 'ID', isReadOnly: true },
            {
                binding: 'country',
                header: 'My Links',
                cellTemplate: CellMaker.makeLink({
                    text: 'Visit ${item.country}', // override bound text
                    href: '${item.url}', // bound link destination
                    // no need for click handler, the link navigates automatically
                })
            }
        ]
    });

    For details on links and button elements, please visit https://css-tricks.com/a-complete-guide-to-links-and-buttons/.

    Parameters

    Returns ICellTemplateFunction

    An ICellTemplateFunction to be assigned to a column's Column.cellTemplate property.

Static makeRating

  • Creates a cell template to show and edit a rating value.

    The cell should be bound to a string containing a number that represents a rating.

    By default, cells show ratings as stars. You may customize the appearance of rating cells using CSS.

    For example, the code below defines a column with stars that show the 'rating' member of the data items. Since the column is not read-only, users may edit the ratings using the keyboard or the mouse:

    new FlexGrid('#theGrid', {
        autoGenerateColumns: false,
        columns: [
            { binding: 'id', header: 'ID', isReadOnly: true },
            {
                binding: 'rating',
                header: 'Rating (editable)',
                width: 220,
                align: 'center',
                cellTemplate: CellMaker.makeRating({
                    range: [0, 5], // rating values between 0 and 5
                    label: 'Edit Product Rating'
                })
           }
        ]
    });

    Parameters

    Returns ICellTemplateFunction

    An ICellTemplateFunction to be assigned to a column's Column.cellTemplate property.

Static makeSparkline

  • Creates a cell template with a sparkline.

    The cell should be bound to an array of numbers to be shown as a mini line chart.

    For example, the code below defines a column with sparklines showing the content of the 'history' array in the cell's data item. You may customize the appearance of the sparklines using CSS:

    new FlexGrid('#theGrid', {
        autoGenerateColumns: false,
        columns: [
            { binding: 'id', header: 'ID', isReadOnly: true },
            {
                binding: 'history',
                header: 'History Sparklines',
                width: 175,
                cellTemplate: CellMaker.makeSparkline({
                    markers: SparklineMarkers.High | SparklineMarkers.Low, // add markers
                    maxPoints: 25, // limit number of points
                    label: '${item.country} sales history line chart', // accessibility
                })
            }
        ]
    });

    Parameters

    Returns ICellTemplateFunction

    An ICellTemplateFunction to be assigned to a column's Column.cellTemplate property.