ASP.NET数据绑定的一般情况
1、<%= C#代码 %> //调用代码隐藏页面的方法、属性、或者字段
这里一般是调用属性和方法比较多,要注意调用的属性、方法或者字段的作用域,必须是可以在ASPX页面可以访问到的。
代码示例(ASPX):<%=Property%>
在(CS)是: public string Property{ get { return "This is a Property";} }
属性是这样使用的,方法和字段的使用类似,也是这样实现的。
2、<%#数据绑定表达式%>//是在列表控件里面使用的
使用方式一:<%# Eval("FirstName")%>
使用方式二:<%# DataBinder.Eval(Container.DataItem, "SecondName")%>
下面附上我调试的源码,可以复制过去看看
在ASPX页面:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
<%@ Page Language= " C# " AutoEventWireup= " true " CodeBehind= " Default.aspx.cs " Inherits= " DataBindEx._Default " %> <%@ Import Namespace= " System.Data " %> <%@ Import Namespace= " System.Collections.Generic " %> <!DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd "> <html xmlns= " http://www.w3.org/1999/xhtml "> <head runat= " server "> <title></title> </head> <body> <form runat= " server "> <div> <%=Property%> <br /> <asp:TextBox ID= " TextBox1 " Text= " This is TextBox of serverClient " runat= " server "></asp:TextBox> <br /> <%=Method()%> <br /> <br /> <asp:Label ID= " Label1 " runat= " server "><%=TextBox1.Text %></asp:Label> <br /> <%=(Property + " " + Method())%> </div> <div> <asp:Repeater ID= " Repeater1 " runat= " server " OnItemDataBound= " RptAllOnItemDataBound "> <HeaderTemplate> This is Header<br /> </HeaderTemplate> <ItemTemplate> FirstName:<%# Eval( " FirstName ")%> SecondName:<%# DataBinder.Eval(Container.DataItem, " SecondName ")%> FullName:<%# (Container.DataItem as DataBindEx.Person).FullName%> <asp:Literal ID= " Others " runat= " server "></asp:Literal> <br /> </ItemTemplate> <FooterTemplate> This is footer<br /> </FooterTemplate> </asp:Repeater> </div> </form> </body> </html>
在CS页面:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.MobileControls; namespace DataBindEx { public class Person { public string FirstName { get; set; } public string SecondName { get; set; } public string FullName { get { return FirstName + SecondName; } } } public partial class _Default : System.Web.UI.Page { public string Property { get { return " This is a Property "; } } protected void Page_Load( object sender, EventArgs e) { string str = TextBox1.Text; Person per = new Person(); per.FirstName= " 刘 "; per.SecondName= " 明丰 "; Person per1 = new Person(); per1.FirstName = " 林 "; per1.SecondName = " 旺 "; Person per2 = new Person(); per2.FirstName = " 陈 "; per2.SecondName = " 仁峰 "; List<Person> list = new List<Person>(); list.Add(per); list.Add(per1); list.Add(per2); Repeater1.DataSource = list; Repeater1.DataBind(); } protected void RptAllOnItemDataBound( object sender, RepeaterItemEventArgs e) { Person pe = (Person)e.Item.DataItem; Literal lit = e.Item.FindControl( " Others ") as Literal; if (pe != null) switch (pe.FirstName) { case " 刘 ": lit.Text = " 刘喜欢打球 "; break; case " 林 ": lit.Text = " 林喜欢下棋 "; break; default: lit.Text = " 陈喜欢c# "; break; } } protected string Method() { return " This is a Method "; } } }
我是看了这篇后自己测试一下,原博客是