Giter VIP home page Giter VIP logo

handsontable-chosen-editor's Introduction

Handsontable-chosen-editor

Use a chosen select field in a Handsontable.

View Demo

Dependencies

  • jQuery
  • Handsontable
  • Chosen
  • handsontable-chosen-editor.js (This is the Handsontable Editor)

Usage

 new Handsontable(document.getElementById("handsontable"), {
    data: data,
    columns: [
        {
            renderer: customDropdownRenderer,
            editor: "chosen",
            width: 150,
            chosenOptions: {
                data: [
                    {
                        id: "SPOT",
                        label: "Spot"
                    }, {
                        id: "AFLOAT",
                        label: "Afloat"
                    }, {
                        id: "PREORDER",
                        label: "Preorder"
                    }, {
                        id: "FORWARD",
                        label: "Forward"
                    }
                ]
            }
        },
        {
            renderer: customDropdownRenderer,
            editor: "chosen",
            width: 150,
            chosenOptions: {
                multiple: true,
                data: [
                    {
                        id: "1",
                        label: "Catuai"
                    }, {
                        id: "2",
                        label: "Bourbone"
                    }, {
                        id: "3",
                        label: "Geisha"
                    }
                ]
            }
        }
    ]
});
    
function customDropdownRenderer(instance, td, row, col, prop, value, cellProperties) {
    var selectedId;
    var optionsList = cellProperties.chosenOptions.data;

    if(typeof optionsList === "undefined" || typeof optionsList.length === "undefined" || !optionsList.length) {
        Handsontable.cellTypes.text.renderer(instance, td, row, col, prop, value, cellProperties);
        return td;
    }

    var values = (value + "").split(",");
    value = [];
    for (var index = 0; index < optionsList.length; index++) {

        if (values.indexOf(optionsList[index].id + "") > -1) {
            selectedId = optionsList[index].id;
            value.push(optionsList[index].label);
        }
    }
    value = value.join(", ");

    Handsontable.cellTypes.text.renderer(instance, td, row, col, prop, value, cellProperties);
    return td;
}

Basically, use "chosen" as editor and customDropdownRenderer as renderer. In the chosenOptions, you can set multiple: true if you want to have a multiple select. The data property has to be an array consisting of objects with an id and a label field. You can also use a different renderer. The example renderer (customDropdownRenderer) will simply output a comma separated list of the appropriate labels.

handsontable-chosen-editor's People

Contributors

pvessel avatar martinechtner avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.