.NET基础之数据绑定

<%#name%>:将name绑定到该属性;
1.简单数据绑定
在页面源代码中添加一个Label控件,将页面的Name属性绑定到该控件上
<asp:Label ID="Label1" runat="server" Text=<%#Name %>></asp:Label>

简单属性绑定


2.表达式的绑定
在页面源代码上添加两个TextBox控件,一个Label控件,将两个TextBox的值相乘后显示在Label上
<asp:TextBox ID="TextBox1" runat="server">0</asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server">0</asp:TextBox>
//Decimal 表示十进制数,Decimal 类型不会消除对舍入的需要,而是将因舍入而导致的错误降到最少
<asp:Label ID="Label1" runat="server" Text=<%#"总数为:"+Convert.ToString(Convert.ToDecimal(TextBox1.Text)*Convert.ToDecimal(TextBox2.Text)) %>></asp:Label>
页面cs代码:Page.DataBind(); 如果希望页面初始及绑定,就放在Page_Load中,如果希望点击按钮计算,就放在Button的Click事件中。


3.方法的绑定
在页面源代码中直接调用cs代码中的方法
在页面源代码上添加两个TextBox控件,一个Label控件,将两个TextBox的值相乘后显示在Label上
<asp:TextBox ID="TextBox1" runat="server">0</asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server">0</asp:TextBox>
//Decimal 表示十进制数,Decimal 类型不会消除对舍入的需要,而是将因舍入而导致的错误降到最少
<asp:Label ID="Label1" runat="server" Text=<%#text()%>></asp:Label>
页面cs代码:Page.DataBind();如果希望页面初始及绑定,就放在Page_Load中,如果希望点击按钮计算,就放在Button的Click事件中。

public string text()
{
    
double num1 = Convert.ToDouble(TextBox1.Text);
    
double num2 = Convert.ToDouble(TextBox2.Text);
     
return ("总数为:"+(num1 * num2).ToString());
}

也可以使用JavaScript绑定到方法。
页面源代码:
<input id="Button1" type="button" value="button" onclick="Button1_onclick()" />

Code


4.Eval( " ")和DataBinder.Eval( Container.DataItem,"FileName")区别

DataBinder:数据绑定管理器
Eval:求值
Container:被绑定到的容器,比如GridView,DataList等
DataItem:容器的数据项,包括项、交替模板行
FileName:绑定到容器的字段(来自数据库表字段)

  • Eval只能在数据绑定控件的模板中使用,而不能用于Page(页面)层
     ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(fieldname)。Eval方法与DataBinder.Eval一样可以接受一个可选的格式化字符串参数。缩短的Eval语法与DataBinder.Eval的不同点在于,Eval会根据最近的容器对象(例如DataListItem)的DataItem属性来自动地解析字段,而DataBinder.Eval需要使用参数来指定容器。ASP.NET 2.0页面中仍然支持DataBinder.Eval,你可以在不支持简化的Eval语法的环境中使用它。
  • span style="color: #ff0000">双向绑定和单向绑定的区别
    Eval 函数用于定义单向(只读)绑定。
    Bind 函数用于定义双向(可更新)绑定。
    简单说就是Eval只能读数据,不能更新。Bind 既能读又能更新。 Bind 方法通常与输入控件一起使用,例如由编辑模式中的 GridView 行所呈现的 TextBox 控件。当数据绑定控件将这些输入控件作为自身呈现的一部分创建时,该方法便可提取输入值。


5.格式化绑定数据
最后一个参数和String.c的形式一样,下面三种表达方式相同,详见c#基础之字符串处理
<%#DataBinder.Eval(Container.DataItem,"字段名","{0:c}") %>
<%#Eval("字段名","{0:c}")%>
<%#((DataRowView)Container.DataItem)["字段名"] %>
以下三种写法同等
<%#string.Format("{0:yyyy-MM-dd dddd}",Eval("stuBirth"))%>
<%# DataBinder.Eval(Container.DataItem,"stuBirth","{0:yyyy-MM-dd}")%>

<%#((DataRowView)Container.DataItem)["stuBirth"] %>

原文地址:https://www.cnblogs.com/shanymen/p/1458842.html