zoukankan      html  css  js  c++  java
  • 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页面:

    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.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页面:

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

    我是看了这篇后自己测试一下,原博客是

    http://www.cnblogs.com/yangcaogui/archive/2012/03/12/2390065.html

  • 相关阅读:
    电脑麦克风不能用
    MathType中带上下标字符不对其
    Visio显示不完整
    程序员美食-煎豆腐
    Visio画好的图在word中只显示一部分
    Visio中旋转文本框与箭头平行
    Tikhonov regularization和岭回归
    linux下使用sftp
    git cherry-pick. 如何把已经提交的commit, 从一个分支放到另一个分支
    python 操作消息队列
  • 原文地址:https://www.cnblogs.com/lmfeng/p/2396018.html
Copyright © 2011-2022 走看看