I have a related problem with this.
I have a successfully virtualized MultiSelect working.
As a user types in to the field searching for a specific record, they find there isn't one. Through a separate button on the page, they execute a function to add to the list of options. This triggers an Ajax call that updates the lookup table adding a new record, and it returns the key for that record. Upon success, it updates the value of the MultiSelect to add the newly created record to the list of selected records.
The problem I'm running into is that the server's mapper function is returning (for example) 1267 for the index into the dataset where the newly created record is found. Since the dataset is sorted alphabetically, this is not going to be the last record. When the control reads the return from the mapper, it says, "Hey, I've already retrieved the record at position 1267, and it displays it without going back to the server to update the list of options. The problem is that this is what WAS at 1267 (and is now at 1268) is being selected - sometimes.
I had the following records in my database. ..., test, theory, ... I typed test into the MultiSelect, and saw that (of course) test1 wasn't in there. So, I clicked on the button I added, entered my new value (test1) and saved. The MultiSelect successfully selected test1. I then clicked on the button again, and I entered another new value (test2) and saved. The MultiSelect showed test1 and theory. If I clicked on the MultiSelect to view the items, I indeed saw test1 followed by theory. However, if I typed "test" in for searching and the virtualization kicked in and started talking to the server, I saw test1 and test2. Now, if I cleared my search text, I saw ..., test, test1, test2, theory, ...
I think what I'm looking for is a way to manually clear or reset the data already retrieved for pages of selections the MultiSelect has seen. When I successfully add a new lookup value, I want to call a method that tells the MultiSelect, "Hey, your cached data isn't quite accurate anymore. You're going to need to go to the server to get current selections.
Is there a way to do this?