百度空间 | 百度首页 
 
查看文章
 
DataBinder.Eval与Bind对比总结
2007年12月27日 星期四 23:12

一、DataBinder.Eval的基本格式

在绑定数据时经常会用到这个句程序:
<%# DataBinder.Eval(Container.DataItem,"xxxx")%>
或者
<%# DataBinder.Eval(Container,"DataItem.xxxx")%>

今天又学到一种,而且微软也说这种方法的效率要比以上两种高。
<%# ((DataRowView)Container.DataItem)["xxxx"]%>

很有用的,这样可以在前台页面做好多事情了。

还要记住要这样用必须要在前台页面导入名称空间System.Data,否则会生成错误信息。

<%@ Import namespace="System.Data" %>

这种用法其实和<%# ((DictionaryEntry)Container.DataItem).Key%>是一个道理。

Text='<%# DataBinder.Eval(Container.DataItem, "字段") %>' 这样的方法是最快的

Text='<%# GetPrice() %>' 也可以绑定方法,但方法要是public的

Text='<%# "CarDetails.aspx?CarID=" + DataBinder.Eval(Container.DataItem, "CarID") %>'

还可以连接多个字段

关键是Container这个东西,它比较神秘。它的名称空间是System.ComponentModel。对于它我还需要进一步理解。

二、DataBinder.Eval实现判断选择
<asp:TemplateColumn HeaderText="性别">
<ItemTemplate>
<%# DGFormatSex(Convert.ToString(DataBinder.Eval(Container.DataItem,"xb"))) %>
</ItemTemplate>
</asp:TemplateColumn>

cs里定义DGFormatSex方法
protected string DGFormatSex(string xb)
{
if(xb == "1")
return "男";
else
return "女";
}

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} 货币样式

Eval 方法是静态(只读)方法,该方法采用数据字段的值作为参数并将其作为字符串返回。Bind 方法支持读/写功能,可以检索数据绑定控件的值并将任何更改提交回数据库<%# Bind("FirstName") %>

关干这Container.DataItem就我自已的理解是有关对象转换时才要用到Container

http://blog.nnsky.com/blog_view_178492.html?page=2有DataBinder.Eval与Bind对比总结

http://www.leadbbs.com/a/a.asp?B=205&ID=712514 有DataList控件的属性的介绍

友情链接:网址大全 网址导航 网址导航大全 最好的网址导航大全 易品商城 赛博汇通 中国最好的网址导航站 505笑话大全 2345网址导航大全 qq表情大全


类别:Net | 浏览() | 评论 (1)
 
最近读者:
 
网友评论:
1
2007年12月27日 星期四 23:25 | 回复
呵呵...看不懂,太专业了. 厉害~
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu