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

ASP.NET中的数据绑定

2013年11月12日 ⁄ 综合 ⁄ 共 3636字 ⁄ 字号 评论关闭

 

1、<%=  C#代码  %>  //调用代码隐藏页面的方法、属性、或者字段
这里一般是调用属性和方法比较多,要注意调用的属性、方法或者字段的作用域,必须是可以在ASPX页面可以访问到的。
代码示例(ASPX):<%=Property%>
在(CS)是: public string Property{   get { return "This is a Property";}  }
属性是这样使用的,方法和字段的使用类似,也是这样实现的。
2、<%#数据绑定表达式%>//是在列表控件里面使用的
使用方式一:<%# Eval("FirstName")%>
使用方式二:<%# DataBinder.Eval(Container.DataItem, "SecondName")%>
下面附上我调试的源码,可以复制过去看看
在ASPX页面:
  View Code
<%@ 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.2cto.com/uploadfile/2012/0315/20120315091929456.rar
">
<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 />
        <%=TextBox1.Text%>
        <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:<%# DataBinder.Eval(Container.DataItem, "FullName")%>
                <asp:Literal ID="Others" runat="server"></asp:Literal>
                <br />
            </ItemTemplate>
            <FooterTemplate>
                This is footer<br /></FooterTemplate>
        </asp:Repeater>
    </div>
    </form>
</body>
</html>

在CS页面:
  View Code
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";
        }
    }
}

抱歉!评论已关闭.