In web forms, I often bind objects that represent database tables to various ASP.NET control and then when the data is saved, I extract all the user-inputed data from the controls and send that data to the object. Using reflection I’ve been able to automate the process quite a bit. The FormBinding object iterates through all the properties of an object, looks for ASP.NET controls with where the ID is equal to the property name (such as Document.Title and <asp:TextBox ID=”title” />) and then attempts to insert the object.property into the control.value.
The code can be used like this:
void Page_Load() {
if (!IsPostBack) {
// Get an object from the datastore
Document document = Document.GetDocument(1);
// set the properties of the object to controls with the same ID
FormBinding.BindObjectToControls(document,Page);
}
}
void SaveButton(Object sender, EventArgs e) {
Document document = Document.GetDocument(1);
// change the values of the properties of the object to values of controls on the page
FormBinding.BindControlsToObject(document,Page);
Documents.Save(document);
}
The FormBinding methods work with ListControls and controls with the following Properties (Value, Text, SelectedDate, and Checked) which covers a wide variety of controls including FreeTextBox.
Here’s the code.
WOW… new stuff that I didn’t know about… Well, guess who’s going to be coding alot less now 🙂
Please re-upload the code. Page not exist any more.