后台为前台提供数据的两种方式:
1.DataSource---直接数据源(DataSet,DataTable)
2.DataSourceID---关联到一个DataSource控件的ID---支持双向数据绑定
DataSource,DataSourceID两者不能同时定义!
简单的绑定控件:
<asp:CheckBoxList ID="CheckBoxList1" runat="server"
DataSourceID="SqlDataSource1" DataTextField="StuName" DataValueField="StuID">
</asp:CheckBoxList>
DataSourceID="SqlDataSource1" DataTextField="StuName" DataValueField="StuID">
</asp:CheckBoxList>
数据绑定语法:
语法的应用:
1.字符串拼接:
<%# "abc"+Eval("列名").ToString()%>
<%# Eval("列名","abc{0}")%>
2.格式化:
<%# Eval("列名","{0:yyyy-MM-mm}")%>
3.调用函数:
<%# 函数(Eval("列名"))%>
数据绑定表达式包含在 <%# 和 %> 分隔符之内,并使用 Eval 和 Bind 函数。Eval 函数用于定义单向(只读)绑定。Bind 函数用于定义双向(可更新)绑定。除了调用 Eval 和 Bind 方法外,还可以调用 <%# 和 %> 分隔符之内的任何公共范围代码,以在页面处理过程中执行该代码并返回一个值。
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<%# "订单编号:"+ Eval("OrderID")%>
<br />
<%# Eval("CustomerID", "客户姓名:{0}")%>
<br />
<%# Eval("OrderDate", "订购时间:{0:yyyy-MM-dd}")%>
<br />
<%# Eval("Freight","运费:{0:#.00}")%>
(
<%# double.Parse(Eval("Freight").ToString())>50 ? "太贵":"便宜"%>
) -- (
<%# this.Check(Eval("Freight"))%>
)
<br />
<hr />
</ItemTemplate>
</asp:Repeater>
<ItemTemplate>
<%# "订单编号:"+ Eval("OrderID")%>
<br />
<%# Eval("CustomerID", "客户姓名:{0}")%>
<br />
<%# Eval("OrderDate", "订购时间:{0:yyyy-MM-dd}")%>
<br />
<%# Eval("Freight","运费:{0:#.00}")%>
(
<%# double.Parse(Eval("Freight").ToString())>50 ? "太贵":"便宜"%>
) -- (
<%# this.Check(Eval("Freight"))%>
)
<br />
<hr />
</ItemTemplate>
</asp:Repeater>
值得提醒:
<%# this.Check(123) %><%--表示需要调用绑定才能执行--%>
<%=this.Check(123) %><%--表示直接执行--%>
<%=this.Check(123) %><%--表示直接执行--%>