Hi, Isomorphic,
we found strange behavior of ListGrid when tried programmatically filter a list with fetchData(), on filter, SelectItem haven't shown a filtered option, so after some debugging we've found that bug is in SelectItem.js:
	SelectItem.optionDataSource is null when used 'foreignKey', but this.getOptionDataSource() correctly returns.
proof of concept:
	 
							
						
					we found strange behavior of ListGrid when tried programmatically filter a list with fetchData(), on filter, SelectItem haven't shown a filtered option, so after some debugging we've found that bug is in SelectItem.js:
Code:
	
	    _valueIsValid : function (value) {
                
        if (this.addUnknownValues || this.optionDataSource) return true; // <- this.optionDataSource is undefined when 'foreignKey' is used. must be this.getOptionDataSource() here.
proof of concept:
Code:
	
	<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <meta http-equiv="Cache-control" content="no-cache">
    <title></title>
    <script>var isomorphicDir = "smartclient/";</script>
    <script src=smartclient/system/modules-debug/ISC_Core.js></script>
    <script src=smartclient/system/modules-debug/ISC_Foundation.js></script>
    <script src=smartclient/system/modules-debug/ISC_Containers.js></script>
    <script src=smartclient/system/modules-debug/ISC_Grids.js></script>
    <script src=smartclient/system/modules-debug/ISC_Forms.js></script>
    <script src=smartclient/system/modules-debug/ISC_DataBinding.js></script>
    <script src=smartclient/skins/EnterpriseBlue/load_skin.js></script>
</head>
<body>
<script>
    var optionsDataSource = isc.RestDataSource.create({
        ID: "optionsDataSource",
        clientOnly: true,
        fields: [
            {hidden: true, primaryKey: true, name: 'id', type: 'sequence', required: false},
            {name: 'name', type: 'text'}
        ],
        testData: [
            {id: 1, name: 'insert'},
            {id: 2, name: 'update'},
            {id: 3, name: 'remove'}
        ]
    });
    var ds = isc.DataSource.create({
        clientOnly: true,
        fields: [
            {name: 'test', type: 'text', editorType: 'SelectItem', foreignKey: 'optionsDataSource.id'}
        ],
        testData: []
    });
    var listGrid = isc.ListGrid.create({
        width: 700,
        showFilterEditor: true,
        dataSource: ds,
        fields: [
            {
                name: 'test',
                filterEditorProperties: {
                    autoFetchData: false,
                    addUnknownValues: false
                }
            }
        ]
    });
    ////FAST FIX:
    //var selectItem = listGrid.filterEditor.getEditFormItem('test');
    //selectItem.optionDataSource = selectItem.getOptionDataSource();
    listGrid.fetchData({test: 2}) // FilterEditor doesn't show a selected value. should be: 'update'
</script>
</body>
</html>
Comment