Groups | Blog | Home
all groups > asp.net webcontrols > january 2007 >

asp.net webcontrols : FormView & object


David Thielen
1/30/2007 4:04:00 PM
Hi;

Is there a way to assign an object as the DataItem for a FormView? I need to
edit/view/create an object that doesn't really map to a row in a database.

--
thanks - dave
david_at_windward_dot_net
http://www.windwardreports.com

Cubicle Wars - http://www.windwardreports.com/film.htm

stcheng NO[at]SPAM online.microsoft.com
1/31/2007 7:40:10 AM
Hello Dave,

As for the ASP.NET FormView control, it is the same as normal databound
control, you can supply a custom class instance as Datasource through its
"DataSource" property and call DataBind method to perform the databinding.
The difference here is that when you manually supply the custom data object
and perform databinding, you also need to manually bandle all the
edit/update/delete events(hooking the ItemUpdating ..... events) and put
your own code logic there.

One way to still facilitate the ASP.NET 2.0 databound control/data source
control model is to define a custom class which wrapper your custom data
class that will be manipulated through FormView. Then, you can configure
the ObjectDatasource to use your that wrapper class. How do you think?

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead



==================================================

Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.



Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.

==================================================



This posting is provided "AS IS" with no warranties, and confers no rights.
David Thielen
1/31/2007 9:00:00 AM
I tried that but when I attached my object as the DataSource it threw an
exception saying it had to implement one of 3 classes (don't remember their
names). I was hoping to not have to do that.

--
thanks - dave
david_at_windward_dot_net
http://www.windwardreports.com

Cubicle Wars - http://www.windwardreports.com/film.htm




[quoted text, click to view]
stcheng NO[at]SPAM online.microsoft.com
2/1/2007 6:55:13 AM
Thanks for the reply Dave,

Yes, I forgot to mention that most of the databoundcontrol based
Controls(like GridView, DataList....) require the datasource to support the
following interfaces(see the validation code picked from reflector)

========================
protected override void ValidateDataSource(object dataSource)
{
if (((dataSource != null) && !(dataSource is IListSource)) &&
(!(dataSource is IEnumerable) && !(dataSource is IDataSource)))
{
throw new
InvalidOperationException(SR.GetString("DataBoundControl_InvalidDataSourceTy
pe"));
}
}

===============================

However, for your scenario, if you have a single object want to bind to a
databound control, you can simply wrapper it in a object Array, e.g.

==============
MyData data = new MyData();
.....

MyData[] dataarray = new MyData[1];
dataarray[0] = data;

DataControl1.DataSource = dataarray;
.............
==================

Does this workable for your case?

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead


This posting is provided "AS IS" with no warranties, and confers no rights.
AddThis Social Bookmark Button