getSubmittedValue() is used to get the value that has been posted back to the server after a refresh (before any converter etc. is applied)
getvalue() is used to get the value that is currently held in the control (in this case the selected element).
Depending on how your refreshing there may not be a submitted value. Try getValue() and see does that work