ASP.NET数据绑定的记忆碎片实现代码

时间:2022-09-17 20:37:12

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页面: 

复制代码代码如下:


<%@ 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页面: 

复制代码代码如下:



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";