Do you recognize this type of code?
<asp:repeater ID="MyRepater" runat="server">
<ItemTemplate>
<span class="some-class"><%# DataBinder.Eval(Container.DataItem, "APropertyOnMyObject") %></span>
</ItemTemplate>
</asp:Repeater>
Wouldn't it be sweet if we could write something like this instead?
<asp:repeater ID="MyRepater" runat="server">
<ItemTemplate>
<span class="some-class"><%# Container.GetItem<MyObject>().APropertyOnMyObject %></span>
</ItemTemplate>
</asp:Repeater>
Then we have the object strongly typed and will get compile errors if we've messed up.. I don't know about you, but I find it nicer to read without all that boiler-plate-code too
Have you guessed what's coming next..? =]
Well now you can! Just throw this baby in a suitable place and import the namespace in your page (or via web.config to get it in all pages..)
public static class RepeaterItemExtensions
{
public static T GetItem<T>(this RepeaterItem repeaterItem)
{
return (T)repeaterItem.DataItem;
}
}
No comments:
Post a Comment