Your explanation is correct. The data dictionary mismatch was probably the problem. The table that the KeyControl used did not have any data dictionary defined. It was an imported table just for the list. I had assumed that every field would be treated as string. However this particular field contained only numbers and so Suneido treated it as numbers (I checked for the type of data it was Number). However, the field for which KeyControl was defined as its control, was defined as string. So, the mismatch.