Actually I finally figured out a workaround. Instead of creating all those hidden fields you can simply check the Request.Form collecton.
if particular field is not included in the Request.form collection then it has been disabled on the client side because disabled fields are not sent to the server for processing. Since I'm using a Master page you can use the Request.Form collection like this.
if Request.form(lstFrom2.clientID.replace("_", "$")) = Nothing then
'Field is disabled
else
Dim val as String = lstFrom2.SelectedValue
end if
But thanks to everybody who pitched in to help.
Computers are not intelligent. They only think they are.