轉載于:http://hi.baidu.com/kuloo/blog/item/4ffbc1ceede8e20192457e7a.html
绑定的魅力--简单绑定和DataList绑定
2007-06-25 00:47
页面在绑定数据的时候,很多东西需要处理~今天刚研究了一个简单绑定。其实真的很简单~ 在cs中只需要一句 Page.DataBind(); 在aspx的html代码中,将需要绑定的地方加上<%# 这里写需要绑定的数据%>
//这个功能是实现文字跟踪效果 记得将TextBox的AutoPostBack属性改成True //在TextBox中输入完 Label会自动显示出来 </head> <body> <form id="form1" runat="server"> <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True"></asp:TextBox> <br /> <asp:Label ID="Label1" runat="server"><%# TextBox1.Text %></asp:Label> </form> </body> </html>
//cs中的代码 protected void TextBox1_TextChanged(object sender, EventArgs e) { Page.DataBind(); }
这样的绑定是非常简单的。所以叫简单绑定吧~
//另一种实现方法 //直接写在cs中 效果是一样的 protected void TextBox1_TextChanged(object sender, EventArgs e) { this.Label1.Text = this.TextBox1.Text; } //这种方式也许是大多数人使用的 当需要绑定的数据多了,这个就不实用了。
通过使用DataList来说明数据的绑定 //流程说明: //1、创建一个数据源、添加数据 //2、绑定数据源 //3、在HTML中补充完成绑定
//首先看看cs代码页中的代码 public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //第一次载入页面的时候添加列和里面的数值 if (!this.IsPostBack) { //创建一个DataTable DataTable dt = new DataTable(); //添加两列 dt.Columns.Add("num",typeof(int)); dt.Columns.Add("mc", typeof(string)); //在往列里面添加数据 这里的例子做的简单一些 for (int i = 0; i < 10; i++) { DataRow dr = dt.NewRow(); dr[0] = i; dr[1] = "null"; dt.Rows.Add(dr); } //指定DataList的数据源 绑定DataList this.DataList1.DataSource = dt; this.DataList1.DataBind(); } } }
//因为要循环输出 这里使用了模版 看看在HTML中是怎么写的
//这里调用了命名空间System.Data 写法如下 因为使用了DataRowView,所以必须调用这个命名空间 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <asp:DataList ID="DataList1" runat="server"> <ItemTemplate> <!--这里创建模版--> 编号:<%# ((DataRowView)Container.DataItem)["num"] %> 姓名:<%# ((DataRowView)Container.DataItem)["mc"] %> <!--这里的绑定就相对复杂一些了 并且使用了强类型转换 绑定过来的数据是Object类型,所以就需要用到转换了--> </ItemTemplate> </asp:DataList> </form> </body> </html>
注明:在模版内还有另外一种写法,对于控制格式会比现在的这种方便很多 <%# DataBinder.Eval(Container.DataItem,"num","编号:{0}") %> <%# DataBinder.Eval(Container.DataItem,"mc","姓名:{0}") %> 一般推荐使用后面的这种方法
|