现在的位置: 首页 > 综合 > 正文

绑定的魅力–简单绑定和DataList绑定

2012年12月10日 ⁄ 综合 ⁄ 共 2608字 ⁄ 字号 评论关闭

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

抱歉!评论已关闭.