Home All Groups Group Topic Archive Search About

gridview databinding to object data source

Author
6 Oct 2006 10:28 AM
Allan Ebdrup
I have a gridview that I bind to an object data source, the objects in the
object data source have a property called ContactMethods that in turn has a
property called Telephone, now I would like to show the Telephone property
in the grid, but when I select columns I cant navigat into the objects I can
only show the properties of the objects in the object data source, not their
properties' properties'
How do I show Object.ContactMethods.Telephone in the gridview?

Kind Regards,
Allan Ebdrup

Author
7 Oct 2006 2:49 PM
Gaurav Vaish (www.EdujiniOnline.com)
> properties' properties'
> How do I show Object.ContactMethods.Telephone in the gridview?

Alas! That's the way GridView works. I don't think one can specify the
'NestingLevel' to dig deep unless one reaches to 'primitive types' (string,
int etc).

You may want to handle the event PreRender or may be RowCreated. Note that
GridViewRow is nothing but a simple TableRow.

Check if RowTyper is DataGridRowType.DataRow, if so get the Cells[index] and
alter the content of the corresponding Cell.

Alas! I think that's the only/simple way to do it.


--
Happy Hacking,
Gaurav Vaish | www.mastergaurav.com
www.edujinionline.com
http://eduzine.edujinionline.com
-----------------------------------------
Author
9 Oct 2006 2:07 AM
Walter Wang [MSFT]
Hi Allan,

You can use TemplateField and use Eval or Bind to bind to sub properties:

        <asp:GridView ID="GridView1" runat="server"
DataSourceID="ObjectDataSource1">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label ID="lblTelphone" runat="server"
Text='<%# Eval("ContactMethods.Telephone") %>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:Label ID="txtTelphone" runat="server"
Text='<%# Bind("ContactMethods.Telephone") %>'></asp:Label>
                    </EditItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>


#Data-Binding Expression Syntax
http://msdn2.microsoft.com/en-us/library/ms178366.aspx

Sincerely,
Walter Wang (waw***@online.microsoft.com, remove 'online.')
Microsoft Online Community Support

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications. If you are using Outlook Express, please make sure you clear the
check box "Tools/Options/Read: Get 300 headers at a time" to see your reply
promptly.

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.