zoukankan      html  css  js  c++  java
  • 关于ASP.NET 数据绑定

    数据绑定概要
    <%# %> 语法 :
    ASP.NET 引入了一种新的声明语法 <%# %>。该语法是在 .aspx 页中使用数据绑定的基础。所有数据绑定表达式都必须包含在这些字符中。
    简单属性(用于客户的语法):
    <%# custID %>
    集合(用于订单的语法):
    <asp:ListBox id="List1" datasource='<%# myArray %>' runat="server">
     表达式(用于联系人的语法):
    <%# ( customer.First Name + " " + customer.LastName ) %>
     方法结果(用于未结清余额的语法):
    <%# GetBalance(custID) %>
                      

      Page.DataBind() 与 Control.DataBind()为 .aspx 页上的对象确定并设置了特定数据源后,必须将数据绑定到这些数据源。您可以使用 Page.DataBind 或Control.DataBind 方法将数据绑定到数据源
      这两种方法的使用方式很相似。主要差别在于:调用 Page.DataBind 方法后,所有数据源都将绑定到它们的服务器控件。在显式调用 Web 服务器控件的 DataBind 方法或在调用页面级的 Page.DataBind 方法之前,不会有任何数据呈现给控件。通常,可以从 Page_Load 事件调用 Page.DataBind(或 DataBind)。


    数据绑定列表控件
      列表控件是可以绑定到集合的特殊的 Web 服务器控件。您可以使用这些控件以自定义的模板格式显示数据行。所有列表控件都公开 DataSource 和 DataMember 属性,这些属性用于绑定到集合。
      这些控件可以将其 DataSource 属性绑定到支持 IEnumerable、ICollection 或 IListSource 接口的任一集合。
    Repeater.DataSource 属性:获取或设置为填充列表提供数据的数据源

    Repeater 控件
      Repeater 控件是模板化的数据绑定列表。Repeater 控件是“无外观的”;即,它不具有任何内置布局或样式。因此,您必须在控件的模板中明确声明所有 HTML 布局标记、格式标记和样式标记。
    以下代码示例向您演示了如何使用 Repeater 这一列表控件显示数据:

    <%@ Page language="c#" %>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.SqlClient" %>

    <script runat="server">
    void Page_Load(Object sender, EventArgs e)
    {
    SqlConnection cnn
    = new
    SqlConnection(
    "server=(local);database=pubs;Integrated Security=SSPI");
    SqlDataAdapter da
    = new SqlDataAdapter("select * from authors", cnn);
    DataSet ds
    = new DataSet();
    da.Fill(ds,
    "authors");
    Repeater1.DataSource
    = ds.Tables["authors"];
    Repeater1.DataBind();
    }
    </script>
    <html>
    <body>
    <form id="WebForm2" method="post" runat="server">
    <asp:Repeater id="Repeater1" runat="server">
    <ItemTemplate>
    <%# DataBinder.Eval(Container.DataItem,"au_id") %><br>
    </ItemTemplate>
    </asp:Repeater>
    </form>
    </body>
    </html>

    DataBinder.Eval用法范例
    <%# DataBinder.Eval(Container.DataItem, "IntegerValue", "{0:c}") %>
    格式化字符串参数是可选的。如果忽略参数,DataBinder.Eval 返回对象类型的值,

    //显示二位小数
    <%# DataBinder.Eval(Container.DataItem, "UnitPrice", "${0:F2}") %>

    //{0:G}代表显示True或False
    <ItemTemplate>
    <asp:Image Width="12" Height="12" Border="0" runat="server"
    AlternateText='<%# DataBinder.Eval(Container.DataItem, "Discontinued", "{0:G}") %>'
    ImageUrl='<%# DataBinder.Eval(Container.DataItem, "Discontinued", "~/images/{0:G}.gif") %>' />
    </ItemTemplate>

    //转换类型
    ((string)DataBinder.Eval(Container, "DataItem.P_SHIP_TIME_SBM8")).Substring(4,4)
    {0:d} 日期只显示年月日
    {0:yyyy-mm-dd} 按格式显示年月日
    {0:c} 货币样式
    <%#Container.DataItem("price","{0:¥#,##0.00}")%>
    <%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%>
    Specifier Type      Format    Output (Passed Double 1.42)   Output (Passed Int -12400)
    c   Currency         {0:c}      $1.42      -$12,400
    d   Decimal          {0:d}     System.FormatException   -12400
    e   Scientific       {0:e}     1.420000e+000     -1.240000e+004
    f   Fixed point      {0:f}   1.42     -12400.00
    g   General          {0:g}   1.42      -12400
    n   Number with commas for thousands   {0:n}   1.42      -12,400
    r   Round trippable     {0:r}   1.42      System.FormatException
    x   Hexadecimal     {0:x4}   System.FormatException    cf90

    {0:d} 日期只显示年月日
    {0:yyyy-mm-dd} 按格式显示年月日

    样式取决于 Web.config 中的设置
    {0:c}   或 {0:£0,000.00} 货币样式   标准英国货币样式
    <system.web>
    <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-US" uiCulture="en-US" />
    </system.web>
    显示为 £3,000.10

    {0:c}   或 string.Format("{0:C}", price); 中国货币样式
    <system.web>
    <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-cn" uiCulture="zh-cn" />
    </system.web>
    显示为 ¥3,000.10

    {0:c}   或 string.Format("{0:C}", price); 美国货币样式
    <system.web>
    <globalization requestEncoding="utf-8" responseEncoding="utf-8" />
    </system.web>
    显示为 $3,000.10

                                           参考:http://support.microsoft.com/kb/307860/zh-cn
                                           鸣谢:熠哥

  • 相关阅读:
    对生产稳定的一些思考
    tsar指标解释
    tsar采集nginx指标
    Nginx如何处理一个连接
    Java : 如何更优雅的设计异常
    MySql的索引实现
    IntelliJ Idea 常用配置
    ICSharpCode.SharpZipLib.dll 压缩、解压Zip文件 附源码
    Java BigDecimal使用
    社交系统中用户好友关系数据库设计
  • 原文地址:https://www.cnblogs.com/jianglan/p/2137644.html
Copyright © 2011-2022 走看看