ComboBoxItem 不清除模糊的未知值

ComboBoxItem not clearing unknown value on blur

首先,这是我的 ComboBoxItem 字段

{
    name: "State",
    type: "ComboBoxItem",
    canEdit: true,
    valueMap: {
        WI: "Wisconsin",
        IL: "Illinois",
        MN: "Minnesota",
        MI: "Michigan"
    },
    addUnknownValues: false,
    allowEmptyValue: false,
    completeOnTab: true
}

ComboBoxItemListGrid 中与在 DynamicForm 中时的行为截然不同。

在 DynamicForm 中,如果您要键入一个在 valueMap 中没有匹配项的值,然后离开该字段,它将 return 到以前的值。

在可编辑的 ListGrid 中,如果您要键入一个在 valueMap 中没有匹配项的值然后离开该字段,它将保留您键入的所有字符并尝试使用该字符串保存编辑。

Walkthrough

演练中使用的代码

isc.VLayout.create({
    height: 500,
    width: 900,
    margin: 100,
    members: [
        isc.ListGrid.create({
            height: "100%",
            width: "100%",
            canEdit: true,
            modalEditing: true,
            extraSpace: 5,
            fields: [
                { name: "Name", canEdit: true, },
                {
                    name: "State",
                    type: "ComboBoxItem",
                    canEdit: true,
                    valueMap: {
                        WI: "Wisconsin",
                        IL: "Illinois",
                        MN: "Minnesota",
                        MI: "Michigan"
                    },
                    addUnknownValues: false,
                    //allowEmptyValue: false,
                    completeOnTab: true
                }
            ],
            data: [
                { Name: "Evan", State: "WI" },
                { Name: "Erik", State: "IL" },
                { Name: "Philip", State: "MI" },
            ]
        }),
        isc.DynamicForm.create({
            height: "100%",
            width: "100%",
            border: "1px solid #ababab",
            canEdit: true,
            fields: [
                { name: "Name", canEdit: true, },
                {
                    name: "State",
                    type: "ComboBoxItem",
                    canEdit: true,
                    valueMap: {
                        WI: "Wisconsin",
                        IL: "Illinois",
                        MN: "Minnesota",
                        MI: "Michigan"
                    },
                    addUnknownValues: false,
                    allowEmptyValue: false,
                    completeOnTab: true
                }
            ],
            values: { Name: "Evan", State: "WI" }
        })
    ]
});

看来 addUnknownValues 对这两个实例有不同的影响。

我通过将 addUnknownValues 移动到 ListGridField 的 editorProperties

解决了这个问题

这是更新后的 ListGridField 项

{
    name: "State",
    type: "ComboBoxItem",
    canEdit: true,
    valueMap: {
        WI: "Wisconsin",
        IL: "Illinois",
        MN: "Minnesota",
        MI: "Michigan"
    },
    editorProperties:{
        addUnknownValues: false,
        allowEmptyValue: false,
        completeOnTab: true
    }
}