标准的ASP.net数据绑定语法是什么?

标准的ASP.net数据绑定语法是什么?,asp.net,data-binding,databinder,Asp.net,Data Binding,Databinder,Microsoft对控件的介绍提供了获取值的语法: <b><%# DataBinder.Eval(Container.DataItem, "orderid") %></b> 但我记得这种语法是“坏”和“错”的。从的MSDN文档中,我看到: 注意 由于此方法在运行时使用反射执行后期绑定求值,因此与标准ASP.NET数据绑定语法相比,它会导致性能明显降低 (增加重点) 这就解释了为什么我有一个“Evalis bad”的记忆。但是什么是“标准ASP.NET数据绑定

Microsoft对控件的介绍提供了获取值的语法:

<b><%# DataBinder.Eval(Container.DataItem, "orderid") %></b>
但我记得这种语法是“坏”和“错”的。从的MSDN文档中,我看到:

注意

由于此方法在运行时使用反射执行后期绑定求值,因此与标准ASP.NET数据绑定语法相比,它会导致性能明显降低

(增加重点)

这就解释了为什么我有一个“
Eval
is bad”的记忆。但是什么是“标准ASP.NET数据绑定语法”

额外阅读

我想你可以做一个演员来避免“延迟绑定”的惩罚:


现在让我们假设您将性能提高了x%。对你的申请来说值得吗?在我看来,取舍是可读性较差。“标准ASP.NET数据绑定”通常指将数据源中的数据绑定到命名控件,例如表单上的文本框,或者可以绑定整个表的旧GridView

如果你只需要一个只读数据显示,你可以考虑一个FraceRoop或Data Reader来将数据解析成StrugBu建器中的原始HTML,然后将StringBuilder转储为一个文字。

描述标准数据绑定语法如下:

例如,在下面的代码片段中,整数显示为货币字符串使用标准ASP.NET数据绑定语法,必须首先强制转换数据行的类型,才能检索数据字段IntegerValue。接下来,这将作为参数传递给String.Format方法:

<%# String.Format("{0:c}", ((DataRowView)Container.DataItem)["IntegerValue"]) %> 

我正在这样做(构建我想要的html)。但后来有人建议我做得“更好”,使用嵌套的转发器来获得接近我想要的html的内容。这就是为什么我要问关于绑定语法的问题。
<%# (((System.Data.DataRowView)Container.DataItem)["URL"]) %>
<%# String.Format("{0:c}", ((DataRowView)Container.DataItem)["IntegerValue"]) %>