zoukankan      html  css  js  c++  java
  • DataBinder.Eval用法

    DataBinder.的基本格式
    DataBinder.(Container.DataItem,"XXX","{0}")
    <%# DataBinder.(Container.DataItem,"xxxx")%>或者<%# DataBinder.(Container,"DataItem.xxxx")%>
    还有一种据说微软说效率很高的方式
    <%# ((DataRowView)Container.DataItem)["xxxx"]%> 但是这种方式必须要在前台页面导入名称空间System.Data,否则会生成错误信息<%@ Import namespace="System.Data" %>

    DataBinder.的基本格式
    DataBinder.(Container.DataItem,"XXX","{0}")
    <%# DataBinder.(Container.DataItem,"xxxx")%>
    <%# DataBinder.(Container,"DataItem.xxxx")%>
    问题1、他们是有什么不同?
    问题2、他们是否可以相互替换?
    问题3、DataBinder.(Container.DataItem,"") 这个Container和DataItem分别都是什么?
    答1:是对数据的只读绑定,被绑定的子控件所属的父控件(比如GridView)不能用此子控件接收用户输入的修改。Bind是双向绑定,所谓双向,是数据源---显示界面的双向数据流动,即读/写。
    答2:可以替换为Bind,但会降低性能;反之不能替换。
    答3:Container即容器,指父控件;DataItem指父控件所绑定的数据源的当前行,不是字段。如果只是显示值<%#("字段名")%>就可以了.如果是要修改值<%#Bind("字段名")%>就可以了.
    以下两种的显示是相同的
    <%# ("name") %>
    <%# DataBinder.(Container.DataItem,"sex") %>

    <%# Bind("Subject") %> //绑定字段
    <%# Container.DataItemIndex + 1%> //实现自动编号
    <%# DataBinder.(Container.DataItem, "[n]") %>
    通常使用的方法(这三个性能最好)
    <%# DataBinder.(Container.DataItem, "ColumnName") %>
    <%# DataBinder.(Container.DataItem, "ColumnName", null) %>
    <%# DataBinder.(Container, "DataItem.ColumnName", null) %>
    其他用法
    <%# ((DataRowView)Container.DataItem)["ColumnName"] %>
    <%# ((DataRowView)Container.DataItem).Row["ColumnName"] %>
    <%# ((DataRowView)Container.DataItem)["adtitle"] %>
    <%# ((DataRowView)Container.DataItem)[n] %>
    <%# ((DbDataRecord)Container.DataItem)[0] %>
    <%# (((自定义类型)Container.DataItem)).属性.ToString() %>//如属性为字符类型就不用ToString()
    DataBinder.用法范例
    <%# DataBinder.(Container.DataItem, "IntegerValue", "{0:c}") %>
    格式化字符串参数是可选的。如果忽略参数,DataBinder. 返回对象类型的值,
    //显示二位小数
    <%# DataBinder.(Container.DataItem, "UnitPrice", "${0:F2}") %>
    //{0:G}代表显示True或False
    <ItemTemplate>
    <asp:Image Width="12" Height="12" Border="0" runat="server"
    AlternateText='<%# DataBinder.(Container.DataItem, "Discontinued", "{0:G}") %>'
    ImageUrl='<%# DataBinder.(Container.DataItem, "Discontinued", "~/images/{0:G}.gif") %>' />
    </ItemTemplate>
    //转换类型
    ((string)DataBinder.(Container, "DataItem.P_SHIP_TIME_SBM8")).Substring(4,4)
    {0:d} 日期只显示年月日
    {0:yyyy-mm-dd} 按格式显示年月日
    {0:c} 货币样式
    <%#Container.DataItem("price","{0:¥#,##0.00}")%>
    <%# DataBinder.(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

  • 相关阅读:
    《人月神话》阅读笔记02
    学习进度条-4
    课堂作业3
    MySql 8.0及对应驱动包匹配注意点
    关于Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案
    STM32之ADC配置,ADC_Mode模式理解
    STM32串口中断的方式发送
    RTC 与RCC 之间的关系
    stm32 MDK5软件仿真之查看io口输出
    STM32 PWM学习
  • 原文地址:https://www.cnblogs.com/wangliujun/p/2988588.html
Copyright © 2011-2022 走看看