轉載于: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}") %>
一般推荐使用后面的这种方法
|