Datagrid Binding Error "Object does not match target type"

K

Karahan Celikel

I have a datagrid in which I want to visualize objects of various type
(they inherit from the same base class). I want to display common properties
of the objects over the grid.

At runtime I create an ArrayList that contains all the objects . When I make
the binding I obtain the following error:

Object does not match target type.

Exception Details: System.Reflection.TargetException: Object does not match
target type.

Any help would be appreciated.

Thanks.
 
L

Lewis Wang [MSFT]

Hi Karahan,

When binding the data grid to an array list the binding mechanism looks for
the type of the first item in the list and uses the property descriptors
collection for that type. If the controls in the array list are various
types, an ¡°Object does not match target type.¡± error will be thrown out.

You may check the following link for more information.

Databind ArrayList to DataGrid
<http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&threadm=eJwevg%
23gCHA.2108%40tkmsftngp12&rnum=3&prev=/groups%3Fq%3DDatagrid%2BBinding%2BErr
or%2B%2522Object%2Bdoes%2Bnot%2Bmatch%2Btarget%2Btype%2522%26hl%3Den%26lr%3D
%26ie%3DUTF-8%26oe%3DUTF-8%26selm%3DeJwevg%2523gCHA.2108%2540tkmsftngp12%26r
num%3D3>

To walk around this, you may add these controls programmatically form code
in DataGrid.ItemCreated event. Here is a code snippet. You may modify it to
meet your requirements.

private void DataGrid1_ItemCreated(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Header)
{
e.Item.Cells [0].Controls .Add (new Button());
}
else if(e.Item.ItemIndex == 2)
{
e.Item.Cells [2].Controls.Add(new DropDownList());
}
else if(e.Item.ItemType == ListItemType.Item)
{
e.Item.Cells [1].Controls.Add(new TextBox ());
}
}

Check the below link for more information.

DataGrid.ItemCreated Event
<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html
/frlrfsystemwebuiwebcontrolsdatagridclassitemcreatedtopic.asp>

Hope this helps.

Best regards,
Lewis

This posting is provided "AS IS" with no warranties, and confers no rights.

--------------------
| From: "Karahan Celikel" <[email protected]>
| Subject: Datagrid Binding Error "Object does not match target type"
| Date: Tue, 19 Aug 2003 09:49:18 -0500
| Lines: 24
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| Message-ID: <#[email protected]>
| Newsgroups: microsoft.public.dotnet.framework.aspnet.datagridcontrol
| NNTP-Posting-Host: 126-23-206.biztyp2.ksle.everestkc.net 64.126.23.206
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftngp13.phx.gbl
| Xref: cpmsftngxa06.phx.gbl
microsoft.public.dotnet.framework.aspnet.datagridcontrol:6259
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet.datagridcontrol
|
| I have a datagrid in which I want to visualize objects of various type
| (they inherit from the same base class). I want to display common
properties
| of the objects over the grid.
|
| At runtime I create an ArrayList that contains all the objects . When I
make
| the binding I obtain the following error:
|
| Object does not match target type.
|
| Exception Details: System.Reflection.TargetException: Object does not
match
| target type.
|
| Any help would be appreciated.
|
| Thanks.
|
|
|
|
|
|
|
|
|
|
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,480
Members
44,900
Latest member
Nell636132

Latest Threads

Top