• 关于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
                                           鸣谢:熠哥

  • 相关阅读:
    java web项目打包.war格式
    version 1.4.2-04 of the jvm is not suitable for thi
    Sugarcrm Email Integration
    sharepoint 2010 masterpage中必须的Content PlaceHolder
    微信开放平台
    Plan for caching and performance in SharePoint Server 2013
    使用自定义任务审批字段创建 SharePoint 顺序工作流
    Technical diagrams for SharePoint 2013
    To get TaskID's Integer ID value from the GUID in SharePoint workflow
    how to get sharepoint lookup value
  • 原文地址:https://www.cnblogs.com/jianglan/p/2137644.html
Copyright © 2020-2023  润新知