相关疑难解决方法(0)

OnDataBinding vs Inline:优点,缺点和开销

我想我会问这个问题,看看为什么很多例子和人们更喜欢在aspx代码中使用内联数据绑定而不是在使用WebForms时实现OnDataBinding事件.

对于任何数据绑定控件(例如,Repeater,GridView等),我总是为字段级控件实现OnDataBinding方法,如果我需要做任何不是开箱即用的东西(例如,我需要做一个Eval).我看到的大多数示例都使用内联<%#语法在aspx页面中使用了正确的代码.

内联ASP.NET代码示例:

<asp:Literal ID="litExample" runat="server"
    Text='<%# Eval("ExampleField").ToString() %>' />
Run Code Online (Sandbox Code Playgroud)

我更喜欢这样做的例子:

在aspx中:

<asp:Literal ID="litExample" runat="server" 
    OnDataBinding="litExample_DataBinding" />
Run Code Online (Sandbox Code Playgroud)

在codebehind .cs中:

protected void litExample_DataBinding(object sender, System.EventArgs e)
{
    Literal lit = (Literal)(sender);
    lit.Text = string.Format("{1} - {2}",
        Eval("ExampleField").ToString(),
        Eval("ExampleField2").ToString());
}
Run Code Online (Sandbox Code Playgroud)

我个人更喜欢codebehind方法,因为它保持我的aspx页面干净,并且我没有所有这些内联代码,而下一个人只知道总是查看.cs文件中的代码更改.表示和代码的分离也以这种方式保持得更好,因为HTML只是占位符,而代码绑定正在确定实际控制的内容.

现在这些是非常基本的例子.该字段可以是您想要使用前导0格式化的整数,也可以是需要特定格式等的DateTime.它还可以采用所有类型的操作和代码来获取应存储在"Text"属性中的finally值.结束.

如果使用内联代码,在哪里绘制线并将其移动到代码隐藏?

这样做的优点和缺点是什么?

一个人比另一个人花费更多的开销吗?

编辑注意:我不是在谈论为页面上的控件分配值,而是将数据库分配给,因为它存在于转发器模板或gridview项目模板等中...显然,文字坐在页面上可以只在代码中分配.

编辑注意:我想我会收集更多响应,特别是关于开销.大多数人不使用OnDataBinding事件吗?

c# asp.net coding-style code-behind

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

asp.net ×1

c# ×1

code-behind ×1

coding-style ×1