Skip to content

Selection models

You can choose between three options for selections in a visualization extension:

  • No selections
  • Standard Qlik Sense selection model with toolbar and wrapper around the object supported by methods in the Extension API.
  • Quick selection, where selections are sent straight to the Qlik associative engine and immediately are reflected in the object supported by methods in the Backend API.

The selection model is defined in the initialProperties section in the JavaScript file. You use selectionMode : "CONFIRM" for standard Qlik Sense election model and you use selectionMode : "QUICK" for quick selection mode

Example: Defining standard Qlik Sense selection model

    return {
        initialProperties : {
            version: 1.0,
            qListObjectDef : {
                qShowAlternatives : true,
                qFrequencyMode : "V",
                qInitialDataFetch : [{
                    qWidth : 2,
                    qHeight : 50
                }]
            },
            fixed : true,
            width : 25,
            percent : true,
            selectionMode : "CONFIRM"
        },

Example: Defining quick selection model

    return {
        initialProperties : {
            version: 1.0,
            qListObjectDef : {
                qShowAlternatives : true,
                qFrequencyMode : "V",
                qInitialDataFetch : [{
                    qWidth : 2,
                    qHeight : 50
                }]
            },
            fixed : true,
            width : 25,
            percent : true,
            selectionMode : "QUICK"
        },

You then enable the selection model in the JavaScript.

Example: Defining standard Qlik Sense selection model

    if(this.selectionsEnabled && layout.selectionMode !== "NO") {
        $element.find('li').on('click', function() {
            if(this.hasAttribute("data-value")) {
                var value = parseInt(this.getAttribute("data-value"), 10), dim = 0;
                if(layout.selectionMode === "CONFIRM") {
                    self.selectValues(dim, [value], true);
                    $(this).toggleClass("selected");
                } else {
                    self.backendApi.selectValues(dim, [value], true);
                }
            }
        });
    }

Example: Defining quick selection model

    if(this.selectionsEnabled && layout.selectionMode !== "NO") {
        $element.find('li').on('click', function() {
            if(this.hasAttribute("data-value")) {
                var value = parseInt(this.getAttribute("data-value"), 10), dim = 0;
                if(layout.selectionMode === "QUICK") {
                    self.backendApi.selectValues(dim, [value], true);
                    $(this).toggleClass("selected");
                } else {
                    self.selectValues(dim, [value], true);
                }
            }
        });
    }
Was this page helpful?