Публикация

Отображение выбора в справочнике с мультивыбором

Вопрос

После выбора необходимых значений они не отображаются в лукапе, хотя я их могу получить через this.get('ResponsibleLookUp').

Подскажите тогда как их отобразить в лукапе, чтобы пользователь видел что он выбрал.

Ответ

Вот пример справочника с множественным выбором, отображение выбора которого завязано на строку, хранение ключей выбора завязано на массив.

define("CasePage", ["CasePageResources", "terrasoft", "LookupUtilities"],
    function(resources, Terrasoft, LookupUtilities) {
        return {
            entitySchemaName: "Case",
            details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
            attributes: {
                "UsrVirtualCity": {
                    dataValueType: Terrasoft.DataValueType.TEXT,
                    type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN
                },
                "UsrVirtualCityArray": {
                    dataValueType: Terrasoft.DataValueType.CUSTOM_OBJECT,
                    type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN
                }
            },
            diff: /**SCHEMA_DIFF*/[
                {
                    "operation": "insert",
                    "name": "Number",
                    "values": {
                        "layout": { "colSpan": 24, "rowSpan": 1, "column": 0, "row": 4 },
                        "bindTo": "UsrVirtualCity",
                        "caption": "virtual city",
                        "controlConfig": {
                            "className": "Terrasoft.TextEdit",
                            "rightIconClasses": ["custom-right-item", "lookup-edit-right-icon"],
                            "rightIconClick": {
                                "bindTo": "testClick"
                            }
                        }
                    },
                    "parentName": "SolutionTab_gridLayout",
                    "propertyName": "items",
                    "index": 6
                }
            ]/**SCHEMA_DIFF*/,
            methods: {
                onEntityInitialized: function() {
                    this.callParent(arguments);
                    // just for debug:
                    document.scope = this;
                },
                testClick: function() {
                    var config = {
                        entitySchemaName: "City",
                        multiSelect: true
                    };
                    LookupUtilities.Open(this.sandbox, config, this.onTestClickComplete, this, null, false, false);
                },
                onTestClickComplete: function(cities) {
                    if (cities.selectedRows.getCount() > 0) {
                        var citiesItems = cities.selectedRows.getItems();
                        var displayValue = "";
                        for (var i = 0; i < citiesItems.length; i++) {
                            displayValue = displayValue + citiesItems[i].displayValue + "; ";
                        }
                        displayValue = displayValue.substring(0, displayValue.length - 2);
                        this.set("UsrVirtualCity", displayValue);
                        var citiesKeys = cities.selectedRows.getKeys();
                        this.set("UsrVirtualCityArray", citiesKeys);
                    }
                }
            },
            rules: {}
        };
});

 

Нравится

Поделиться

0 комментариев
Показать все комментарии