漫漫技术人生路

C#

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

http://hi.baidu.com/anwyo/blog/item/02e0aa1bbfbf49198718bf85.html
1.  数据库有一字段为日期字段,只包含日期部分,但是用<%#DataBinder%>显示出来,后面却自动加上了   0:00:00.怎样才能去掉时间部分?   另外如果是纯时间,如何去掉日期部分?

<%#   DataBinder.Eval(Container.DataItem,"属性名","{0:yyyy-MM-dd}")%>'>

2. <%# DataBinder.Eval(Container.DataItem, "smalldir")%>  如何将绑定的值中'*' 替换成 '#'

<%# DataBinder.Eval(Container.DataItem, "smalldir",{0:*:#})%> 这样对?

<%#Convert.ToString(DataBinder.Eval(Container.DataItem, "smalldir")).Replace("*","#")%>

3. DataBinder.Eval(Container.DataItem,"NUMBER","0.00")这里的第三个参数不是Format函数支持的吗?那么怎么实现 把邦定的字符串给Format成两位小数的数字?

DataBinder.Eval(Container.DataItem,"NUMBER","{0:2d}")

4. <%# DataBinder.Eval(Container.DataItem,"NewsID")%>显示数据的,如果标题太长了怎么规定字数,多余的用"..."代替?

<%# DataBinder.Eval(Container.DataItem,"Title") %>改成:

<%# DataBinder.Eval(Container.DataItem,"Title").ToString().Length>13?DataBinder.Eval(Container.DataItem,"Title").ToString().SubString(0,13):DataBinder.Eval(Container.DataItem,"Title").ToString() %>

5.如果你是想根据那个值的状态显示不同的图片,可以这样:

在你本来放置input控件的地方放一个<asp:label text="<%#ShowImage(DataBinder.Eval(Container.DataItem,"Enable")%>">

在后台实现ShowImage:

public string ShowImage(string fg)

{

  if (fg=="True"){

                   return "<img src='images/stat_enable.gif'>");}

         else{

                   return("<img src='images/stat_disable.gif'>")};

}

6. ASP.NET中的数据绑定:哪个更快?

1.<%# DataBinder.Eval(Container.DataItem, "ColumnName") %>
2.<%# DataBinder.Eval(Container.DataItem, "ColumnName", null) %>
3.<%# DataBinder.Eval(Container, "DataItem.ColumnName", null) %>
4.<%# ((DataRowView)Container.DataItem)["ColumnName"] %>
5.<%# ((DataRowView)Container.DataItem).Row["ColumnName"] %>

 
7. <#DataBinder.Eval(Container.DataItem,"qabz").ToString()=="Q"?"相等":"不相等"%>

        //以DataSet做数据源时

         //正常情况(C#)

         <%# ((System.Data.DataRowView)Container.DataItem)["Title"] %>    
//绑定日期字段格式字符串

       <%# Convert.ToDateTime(((System.Data.DataRowView)Container.DataItem)

        ["FbTime"]).ToString("yyyy年MM月dd日") %>

         <%# DataBinder.Eval(Container, "DataItem.FbTime","{0:yyyy年MM月dd日}") %>
  
//字符串绑定超过指定长度截断

      <%# DataBinder.Eval(Container.DataItem, "Text").ToString().Trim().Length>7?

        DataBinder.Eval(Container.DataItem, "Text").ToString().Trim().Substring

        (0,7):DataBinder.Eval(Container.DataItem, "Text").ToString().Trim() %>

       
//价格格试化为2位小数

        <%# Convert.ToDecimal(((System.Data.DataRowView)Container.DataItem) ["Price"]).ToString("F2") %>

        <%# DataBinder.Eval(Container, "DataItem.Price","{0:F2}") %>

         'VB.net中价格格式化后判断
<%# IIf(DataBinder.Eval(Container.DataItem, "price","{0:F2}")="0.00","面议",DataBinder.Eval(Container.DataItem, "price","{0:F2}")+"万") %>

 

         'Vb.net常规
<%# Ctype(Container.DataItem,DataRowView).Row("Title") %>

 

绑定表达式或方法DataBinder.Eval 
通常需要在绑定到页或控件之前操作数据。下面的示例说明如何绑定到表达式和方法的返回值。 
http://www.sepsky.com/sepsky_show.asp?newsid=295
DataBinder.Eval 
ASP.NET 框架提供了一种静态方法,计算后期绑定的数据绑定表达式并且可选择将结果格式化为字符串。DataBinder.Eval 很方便,因为它消除了开发人员为强迫将值转换为所需的数据类型而必须做的许多显式转换。这在数据绑定模板列表内的控件时尤其有用,因为通常数据行和数据字段的类型都必须转换。 

请看下面的示例,本例中整数将显示为货币字符串。使用标准的 ASP.NET 数据绑定语法,必须首先转换数据行的类型以便检索数据字段 IntegerValue。下一步,将此作为参数传递给 String.Format 方法。 

<%# String.Format("{0:c}", ((DataRowView)Container.DataItem)["IntegerValue"]) %>

<%# String.Format("{0:c}", (CType(Container.DataItem, DataRowView)("IntegerValue"))) %>

<%# String.Format("{0:c}", (DataRowView(Container.DataItem))["IntegerValue"]) %>

该语法可能比较复杂,难以记忆。相反,DataBinder.Eval 只是一个具有三个参数的方法:数据项的命名容器、数据字段名和格式字符串。在像 DataList、DataGrid 或 Repeater 这样的模板列表中,命名容器始终是 Container.DataItem。Page 是另一个可与 DataBinder.Eval 一起使用的命名容器。 


<%# DataBinder.Eval(Container.DataItem, "IntegerValue", "{0:c}") %>

<%# DataBinder.Eval(Container.DataItem, "IntegerValue", "{0:c}") %>

<%# DataBinder.Eval(Container.DataItem, "IntegerValue", "{0:c}") %>

 
格式字符串参数是可选的。如果省略它,则 DataBinder.Eval 返回对象类型的值,如下例所示。 


<%# (bool)DataBinder.Eval(Container.DataItem, "BoolValue") %>

<%# CType(DataBinder.Eval(Container.DataItem, "BoolValue"), Boolean) %>

<%# Boolean(DataBinder.Eval(Container.DataItem, "BoolValue")) %>

DataBinder.Eval 会对标准数据绑定语法带来很明显的性能损失,因为它使用后期绑定反射,注意这一点很重要。使用 DataBinder.Eval 时需谨慎,尤其是在不需要字符串格式化时。
 

posted on 2008-03-15 13:06  javaca88  阅读(486)  评论(1编辑  收藏  举报