The way out of this is to change the control to Hidden and then put a visible dummy control to show the associated text which is not bound to the database.
I have a listbox that is disabled and I want it to default to the current logged in user. I get errors saving the record to the database when the listbox is disabled but I don’t have a problem when it is enabled.
So I change the type of input control to Hidden. It stays bound to the database. Then I created another Textbox and show the current username in it. It is not bound to the database.
This may have to do with HTML standards where the values of disabled controls are not returned to the server.