2015年7月13日 星期一

讓 Angular UI Grid 的下拉選單選取後顯示的文字是value 而非id

加入一個filter
.filter('griddropdown', function () {
        return function (input, context) {
            var map = context.col.colDef.editDropdownOptionsArray;
            var idField = context.col.colDef.editDropdownIdLabel;
            var valueField = context.col.colDef.editDropdownValueLabel;
            var initial = context.row.entity[context.col.field];
            if (typeof map !== "undefined") {
                for (var i = 0; i < map.length; i++) {
                    if (map[i][idField] == input) {
                        return map[i][valueField];
                    }
                }
            } else if (initial) {
                return initial;
            }
            return input;
        };
    });

設定columnDefs
  field: '需求部門', editableCellTemplate: 'ui-grid/dropdownEditor',
          editDropdownIdLabel: 'id', editDropdownValueLabel: '名稱',
cellFilter: "griddropdown:this",

沒有留言:

input 連結 datalist 用程式控制彈出選項

範例: nextTick(() => document.querySelector('input').showPicker());  ※僅支援現代瀏覽器