Eval( ” “)和Bind( ” “) 这两种一个单向绑定,一个双向绑定,bind是双向绑定,但需数据源支持

ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(fieldname)。Eval方法与DataBinder.Eval一样可以接受一个可选的格式化字符串参数。缩 短的Eval语法与DataBinder.Eval的不同点在于,Eval会根据最近的容器对象(例如DataListItem)的DataItem属性 来自动地解析字段,而DataBinder.Eval需要使用参数来指定容器。由于这个原因,Eval只能在数据绑定控件的模板中使用,而不能用于 Page(页面)层。当然,ASP.NET 2.0页面中仍然支持DataBinder.Eval,你可以在不支持简化的Eval语法的环境中使用它。

下面的例子演示了如何使用新的简化的Eval数据绑定语法绑定到DataList数据项模板(ItemTemplate)中的Image、Label和HyperLink控件。

<asp:DataList ID="DataList1 " RepeatColumns="5 " Width="600 " runat="server " DataSourceID="ObjectDataSource1 ">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1 " runat="server " NavigateUrl='<%# Eval( "PhotoID ", "PhotoFormViewPlain.aspx?ID={0} ")%>'>
<asp:Image ID= "Image1 " Runat= "server " ImageUrl= <%# Eval( "FileName ", "images/thumbs/{0} ")%>/></asp:HyperLink>
<asp:Label ID="CaptionLabel " runat="server " Text='<%# Eval( "Caption ") %>' />
</ItemTemplate>
</asp:DataList><br />
<asp:ObjectDataSource ID="ObjectDataSource1 " runat="server " TypeName="DataComponentTableAdapters.PhotosTableAdapter "
SelectMethod="GetPhotosForAlbum ">

  数据绑定也可以作为控件的主题定义(theme definition)的一部分,这样我们就可以通过改变主题来随意地改变模板化控件的布局和外观。但是Theme(主题)模板中只能使用Eval(或者 后面讨论的Bind)。绑定到任意的用户代码是被禁止的。

1.DataBinder.Eval用法

//显示二位小数

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

2.Container.DataItem用法.

在绑定数据时经常会用到这个句程序:<%# DataBinder.Eval

(Container.DataItem,”xxxx”)%>或者<%# DataBinder.Eval

(Container,”DataItem.xxxx”)%>

还有一种,而且微软也说这种方法的效率要比以上两种高。

<form id="form1" runat="server">
<div>
  <%#Eval("数据绑定表达式1")%>
  <%#Eval("数据绑定表达式2")%>
</div>
</form>

同样遵循”一”的注意条款。

如果此时的数据绑定表达式是Eval(“数据库中某个表的某个字段”)等,那么必须把 <%#Eval(“数据绑定表达式1”)%> <%#Eval(“数据绑定表达式2”)%> 放在像Repeater,DataList,GridView这样的控件的模板中。

三,可以将数据绑定表达式包含在Javascript代码中,从而实现在Javascript中调用C#或者VB.NET的方法。例如:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script language ="javascript" type="text/javascript">
function GetStr()
{
var a;
a = '';
a='<%#CSharpToJavascript()%>' //调用c#的方法
alert(a);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="Button1" type="button" value="Javascript调用c#的方法!" onclick="GetStr()" /</div>
</form>
</body>
</html>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls; public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Page.DataBind();//方法有返回值的要先绑定,才能实现Javascript调用c#的方法!
}
public string CSharpToJavascript()
{
return "Javascript调用c#的方法!";
}
}

数据绑定表达式都可以是什么类型呢?

1,可以是一个变量

例如:”>

2,可以是服务器控件的属性值

例如:

C# Eval在asp.net中的用法及作用的更多相关文章

  1. [转]C# Eval在asp.net中的用法及作用

    原文链接:http://www.cnblogs.com/Mr_JinRui/archive/2010/07/06/1772129.html Eval( " ")和Bind( &qu ...

  2. C# Eval在aspx页面中的用法及作用

    Eval( " ")和Bind( " ") 这两种一个单向绑定,一个双向绑定,bind是双向绑定,但需数据源支持 ASP.NET 2.0改善了模板中的数据绑定操 ...

  3. 【转载】Asp.Net中Cookie对象的作用以及常见属性

    Cookie对象是服务器为用户访问存储的特定信息,这些信息一般存储在浏览器中,服务器可以从提交的数据中获取到相应的Cookie信息,Cookie的最大用途在于服务器对用户身份的确认,即票据认证,用户会 ...

  4. asp.net中application,cookies,stateview,session的使用

    Cookie Cookie的用法也和ASP中差不多.比如我们建立一个名为aspcn,值为飞刀的cookie HttpCookie cookie = new HttpCookie["aspcn ...

  5. ASP.NET中EVAL用法大全

    <%# Bind("Subject") %> //绑定字段<%# Container.DataItemIndex + 1%> //实现自动编号<%# ...

  6. asp.net中的<%%> <%#%> <%=%>形式的详细用法 (转载)

    博客分类: ASP.NET   一. <%%>这种格式实际上就是和asp的用法一样的,只是asp中里面是vbscript或者javascript代码,而在asp.net中是.net平台下支 ...

  7. 【转】asp.net中利用session对象传递、共享数据[session用法]

    来自:http://blog.unvs.cn/archives/session-transfer-method.html 下面介绍Asp.net中利用session对象传递.共享数据用法: 1.传递值 ...

  8. asp.net中Repeater控件用法笔记

    大家可能都对datagrid比较熟悉,但是如果在数据量大的时候,我们就得考虑使用 repeater作为我们的数据绑定控件了.Repeater控件与DataGrid (以及DataList)控件的主要区 ...

  9. asp.net中的<%%>的几种形式的用法

    转自:http://blog.csdn.net/wang379275614/article/details/9625911 在asp.net中经常出现包含这种形式<%%>的html代码,总 ...

随机推荐

  1. PHP之会话控制小结

    会话控制是一种跟踪用户的通信方式,使用会话控制主要基于以下几点:由于http协议的无状态性,使得不能通过协议来建立两次请求之间的关联:对于通常的页面之间的数据传递方式get和post而言,主要处理参数 ...

  2. 解决64位win7系统IIS7[ODBC 驱动程序管理器]未发现数据源名称并且未指定默认驱动程序

    从网上下载了一个asp系统,数据库是Access类型的,运行环境为 64位Windows 7系统,IIS7,运行系统后,报如下错误: Microsoft OLE DB Provider for ODB ...

  3. Android Metro风格的Launcher开发系列第二篇

    前言: 各位小伙伴们请原谅我隔了这么久才开始写这一系列的第二篇博客,没办法忙新产品发布,好了废话不说了,先回顾一下:在我的上一篇博客http://www.cnblogs.com/2010wuhao/p ...

  4. iOS-学习路线图(推荐)

    在学习一个新的知识时,除了保持积极的态度.对知识的渴望,学习路线以及方法也是很重要的.在学习iOS的时候,遇到这样的情况,非常想去学习,提高,但是没有一个学习路线,不知道从哪里入手,该先学什么.在学什 ...

  5. iOS 键盘回收实现步骤

    第一步:遵守协议 (UITextFieldDelegate) @interface AppDelegate : UIResponder <UIApplicationDelegate,UIText ...

  6. Java基础从数组到集合之间关键字的区别!!!!

    1.&& 和 &区别和联系: 相同点 : 结果是一样的.       不同点 :如果使用双&号判断,如果说条件一为false,不会判断条件二,但是单&号会继续判 ...

  7. [翻译][MVC 5 + EF 6] 10:处理并发

    原文:Handling Concurrency with the Entity Framework 6 in an ASP.NET MVC 5 Application 1.并发冲突: 当一个用户编辑一 ...

  8. C#生成二维码名片

    摘自<31天学会CRM项目开发<C#编程入门级项目实战>> 本例将使用ThoughtWorks.QRCode类库生成二维码名片.正式编码前,先了解一下什么是vCard?它是一种 ...

  9. echarts雷达图

    用echarts展现雷达图的定制 <!doctype html> <html> <head> <meta charset="utf-8"& ...

  10. svn 相关

    // svn相关内容,windows下的可以根据网上的,安装客户端和服务器端安装成功后,可以在服务器端中的 Repositories中建立相关的项目库文件夹,右键相应的文件夹可以复制相关的 url,一 ...