<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://bloggingabout.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Ed Giardina's .NET Blog : Many to Many</title><link>http://bloggingabout.net/blogs/egiardina/archive/tags/Many+to+Many/default.aspx</link><description>Tags: Many to Many</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>ASP.NET Dynamic Data, Changing the Many-To-Many fieldtemplate to not display links</title><link>http://bloggingabout.net/blogs/egiardina/archive/2010/10/18/asp-net-dynamic-data-changing-the-many-to-many-fieldtemplate-to-not-display-links.aspx</link><pubDate>Mon, 18 Oct 2010 17:47:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:484177</guid><dc:creator>Richthofen</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/egiardina/rsscomments.aspx?PostID=484177</wfw:commentRss><comments>http://bloggingabout.net/blogs/egiardina/archive/2010/10/18/asp-net-dynamic-data-changing-the-many-to-many-fieldtemplate-to-not-display-links.aspx#comments</comments><description>&lt;p&gt;By default, the Entity Data Model version of Dynamic Data allows you to use a Many-To-Many fieldtemplate user control, which on display shows you a nice list of links for each related entity. However, in some instances you might not want to show links. Perhaps you want to show plain text, or maybe a custom control?&lt;/p&gt;
&lt;p&gt;Diving into the code for the Many-To-Many field template, its not clear exactly how the binding is happening. Here is the ASPX file for the Many To Many control, before editing:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;
&lt;p&gt;&amp;lt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;asp&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;Repeater&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#ff0000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#ff0000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#ff0000;font-size:x-small;"&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;=&amp;quot;Repeater1&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#ff0000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#ff0000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#ff0000;font-size:x-small;"&gt;runat&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;=&amp;quot;server&amp;quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;ItemTemplate&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;asp&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;DynamicHyperLink&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#ff0000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#ff0000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#ff0000;font-size:x-small;"&gt;runat&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;asp&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;DynamicHyperLink&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;ItemTemplate&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;asp&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;Repeater&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
Not very helpful, right? The normal controls have FieldValueString or some other property from the control available to them to bind. Here, we are in a repeater so one property won&amp;#39;t do, we need to peer into the collection or item from the collection at binding time.&lt;/p&gt;
&lt;p&gt;The other problem is we can&amp;#39;t just expect to know the property name. The property name(s) may be different depending on which Many-To-Many relationship we are dealing with. So we need to know a little about how Dynamic Data works to pull this off.&lt;/p&gt;
&lt;p&gt;The first thing we can do is replace our Dynamic Hyperlink (which seems to be smart enough at bind-time to pick up the proper fields) with a Literal or some other control, like so:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;asp&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#800000;font-size:x-small;"&gt;Literal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#ff0000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#ff0000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#ff0000;font-size:x-small;"&gt;runat&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#ff0000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#ff0000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#ff0000;font-size:x-small;"&gt;Text&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;=&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&amp;lt;%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;#&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; GetDisplayString(Container.DataItem) %&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;cool? Now we have a literal instead of a hyperlink, and we are making a call to a function that we need to define. That function will take the individual item we&amp;#39;ve bound, and figure out what value to display. Now lets look at the function we need to make in the code behind:&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&amp;nbsp;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&amp;nbsp;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;protected&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; GetDisplayString(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; value)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;{&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&amp;nbsp;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;MetaTable&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; actualTable = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;MetaTable&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;.GetTable(value.GetType());&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&amp;nbsp;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; actualTable.GetDisplayString(value); }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&amp;nbsp;This function is doing two things: It is getting the MetaTable of the object we have by inferring it from the&amp;nbsp;Type of object we are binding to. Then, once it knows the MetaTable it can figure out what the Display Name should be for that field.&amp;nbsp;The Display Name is taken either from the &amp;#39;TableName&amp;#39; Data Annotation &amp;nbsp;, or if one does not exist, it grabs the first string it can find from the table.&lt;/p&gt;
&lt;p&gt;Voila! No Links anymore. That&amp;#39;s all you need, and now you might know a little about how Dynamic Data works under the hood.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=484177" width="1" height="1"&gt;</description><category domain="http://bloggingabout.net/blogs/egiardina/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://bloggingabout.net/blogs/egiardina/archive/tags/Dynamic+Data/default.aspx">Dynamic Data</category><category domain="http://bloggingabout.net/blogs/egiardina/archive/tags/FieldTemplate/default.aspx">FieldTemplate</category><category domain="http://bloggingabout.net/blogs/egiardina/archive/tags/Entity+Data+Model/default.aspx">Entity Data Model</category><category domain="http://bloggingabout.net/blogs/egiardina/archive/tags/Many+to+Many/default.aspx">Many to Many</category></item></channel></rss>