Microsoft's introduction to data-binding using the asp:Repeater
control gives the syntax to fetch a value:
<b><%# DataBinder.Eval(Container.DataItem, "orderid") %></b>
This syntax is repeated on other introductions to the ASP.net Repeater
control:
<a href="<%# DataBinder.Eval(Container.DataItem, "URL") %>">...</a>
But i remember this syntax being "bad" and "wrong". From the MSDN documentation of DataBinder.Eval
i see:
Note
Because this method performs late-bound evaluation, using reflection at run time, it can cause performance to noticeably slow compared to standard ASP.NET data-binding syntax.
(emphases added)
So that explains why i had a memory of "Eval
is bad". But what is the "standard ASP.NET data-binding syntax"?
I think you can just do a cast to avoid the "late binding" penalty:
<%# (((System.Data.DataRowView)Container.DataItem)["URL"]) %>
Now let's say you increase performance by x%. Is it worth it to your application? The trade-off (in my opinion) is less readability.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With