Having thought about this, here's what I've worked out:
The surrogate field represents the state of the checkbox (also used for dropdowns/selects etc) field at the point it was served to the browser. So, in the example in the post, it has a value of one, as this is the default value for the field. Now, if we uncheck the field and post back, the browser doesn't POST the field name/value pair back, which is why Domino has problems in the first place. However, the surrogate field IS passed back. So, if the surrogate field has a value of 1 and no normal field is posted the server knows it sent the normal field (by presence of surrogate) and knows to modify the backend field.
Having thought about this, here's what I've worked out:
The surrogate field represents the state of the checkbox (also used for dropdowns/selects etc) field at the point it was served to the browser. So, in the example in the post, it has a value of one, as this is the default value for the field. Now, if we uncheck the field and post back, the browser doesn't POST the field name/value pair back, which is why Domino has problems in the first place. However, the surrogate field IS passed back. So, if the surrogate field has a value of 1 and no normal field is posted the server knows it sent the normal field (by presence of surrogate) and knows to modify the backend field.
Make sense?