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

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

  }

  }

  }