Asp.Net 之 前台绑定经常使用总结

一、<%= 变量名 %> 里面放的是后台定义的变量名,如:javascript

<div>  
    <p> <%= DateTime.Now.ToString() %></p> 
</div>

输出结果为:2015-03-09 11:20:08
二、 <%# %> 数据的绑定(注:只能用在数据绑定控件且为服务器控件中)java

      此格式是asp.net下特有的,它是控件数据绑定的语法,且必需要调用该控件的DataBind()方法才执行(或者整个页面Page.DataBind()也就是对所得控件都调用DataBind()方法)。数据库

如:<%# DataBinder.(Container.DataItem, "ClassName") %>
完整实例代码: 
服务器

<asp:DataList ID="ClassList" runat="server"> 
    <ItemTemplate> 
<%# DataBinder.(Container.DataItem, "ClassName") %> </ItemTemplate> </asp:DataList>
(1)<%#Eval("数据列")%>  主要用于须要进行更改的数据列

如:我须要将<%#Eval("性别")%> =1 ;将1转换成女。asp.net

首先在.CS文件中定义一个方法:函数

/// <summary>         
/// 转换性别         
/// </summary>                
public object ChangeSex(object obj)         
{             
    if (obj.ToString() == "0")             
    {                 return "";             }            
     else             
    {                 return "";             }         
}

则,<%# ChangeSex(Eval("性别"))%> 输出为 " 女 "性能

能够把这些公共的转换方法所有放到一个公共类文件中,进行调用之。调用方法为:spa

<%# 命名间.公共类名.方法名("列")%>.net

 <%# Common.ChangeSex(Eval("性别"))%>双向绑定

也能够进行时间截取

如1: <%# Eval("StartTime", "{0:yyyy-MM-dd}")%>

或者2: <%# Convert.ToDateTime(Eval("StartTime").ToString()).ToString("yyyy-MM-dd")%>

(2)<%# Bind("数据列")%>

常见于GridView中的不须要进行处理的数据列绑定。

(3)Eval和Bind的区别

[1]绑定表达式 <%# Eval("字段名") %>             <%# Bind("字段名") %>

1).eval是只读数据,bind是可更新的.

2).当对需格式化操做的表达式操做时候,必须用Eval 如<%# Eval("字段名").ToString().Trim() %>

3).若GridView中绑定列里面 设置 内容格式 DataFormateString ={0:d} ,则 必须把 属性 HtmlCode 设置为false,不然没法 起做用;

4).Eval 单向绑定:数据是只读的 ;Bind 双向绑定:数据能够更改,并返回服务器端,服务器能够处理更改后的数据,如存入数据库.

[2]、详细介绍
      eval()方法在运行时使用反射执行后期绑定计算,所以与标准的ASP.NET数据绑定方法bind相比,会致使性能明显降低。它通常用在绑定时须要格式化字符串的状况下。多数状况尽可能少用此方法 Eval 方法是静态(只读)方法,该方法采用数据字段的值做为参数并将其做为字符串返回。
      Bind 方法支持读/写功能,能够检索数据绑定控件的值并将任何更改提交回数据库。
      使用 Eval 方法  Eval 方法可计算数据绑定控件(如 GridView、DetailsView 和 FormView 控件)的模板中的后期绑定数据表达式。在运行时,Eval 方法调用 DataBinder 对象的 Eval 方法,同时引用命名容器的当前数据项。命名容器一般是包含完整记录的数据绑定控件的最小组成部分,如 GridView 控件中的一行。所以,只能对数据绑定控件的模板内的绑定使用 Eval 方法。 Eval 方法以数据字段的名称做为参数,从数据源的当前记录返回一个包含该字段值的字符串。能够提供第二个参数来指定返回字符串的格式,该参数为可选参数。字符串格式参数使用为 String 类的 Format 方法定义的语法。
      使用 Bind 方法  Bind 方法与 Eval 方法有一些类似之处,但也存在很大的差别。虽然能够像使用 Eval 方法同样使用 Bind 方法来检索数据绑定字段的值,但当数据能够被修改时,仍是要使用 Bind 方法。   在 ASP.NET 中,数据绑定控件(如 GridView、DetailsView 和 FormView 控件)可自动使用数据源控件的更新、删除和插入操做。例如,若是已为数据源控件定义了 SQL Select、Insert、Delete 和 Update 语句,则经过使用 GridView、DetailsView 或 FormView 控件模板中的 Bind 方法,就可使控件从模板中的子控件中提取值,并将这些值传递给数据源控件。而后数据源控件将执行适当的数据库命令。出于这个缘由,在数据绑定控件的 EditItemTemplate 或 InsertItemTemplate 中要使用 Bind 函数。 Bind 方法一般与输入控件一块儿使用,例如由编辑模式中的 GridView 行所呈现的 TextBox 控件。当数据绑定控件将这些输入控件做为自身呈现的一部分建立时,该方法即可提取输入值。  
Bind 方法采用数据字段的名称做为参数,从而与绑定属性关联,以下面的示例所示:
<EditItemTemplate> 
   <table> 
     <tr> 
       <td align=right> 
         <b>Employee ID:</b> 
       </td> 
       <td> 
         <%# Eval("EmployeeID") %> 
       </td> 
     </tr> 
     <tr> 
       <td align=right> 
         <b>First Name:</b> 
       </td> 
       <td> 
         <asp:TextBox ID="EditFirstNameTextBox" RunAt="Server" 
           Text='<%# Bind("FirstName") %>' /> 
       </td> 
     </tr> 
     <tr> 
       <td align=right> 
         <b>Last Name:</b> 
       </td> 
       <td> 
         <asp:TextBox ID="EditLastNameTextBox" RunAt="Server" 
             Text='<%# Bind("LastName") %>'  /> 
       </td> 
     </tr> 
     <tr> 
       <td colspan="2"> 
         <asp:LinkButton ID="UpdateButton" RunAt="server" 
           Text="Update" CommandName="Update" /> 
           
         <asp:LinkButton ID="CancelUpdateButton" RunAt="server" 
           Text="Cancel" CommandName="Cancel" /> 
       </td> 
     </tr> 
   </table> 
</EditItemTemplate>

      单击行的 Update 按钮时,使用 Bind 语法绑定的每一个控件属性值都会被提取出来,并传递给数据源控件以执行更新操做。

      使用 DataBinder.Eval  ASP.NET 提供了一个名为 DataBinder.Eval 的静态方法,该方法计算后期绑定的数据绑定表达式,并将结果格式化为字符串(可选)。利用此方法,能够避免许多在将值强制为所需数据类型时必须执行的显式强制转换操做。

例如,在下面的代码片断中,一个整数显示为货币字符串。使用标准的 ASP.NET 数据绑定语法,必须首先强制转换数据行的类型以便检索数据字段 IntegerValue。而后,这将做为参数传递到 String.Format 方法:

<%# String.Format("{0:c}", ((DataRowView)Container.DataItem)["IntegerValue"]) %> 
将此语法与 DataBinder.Eval 的语法进行比较,后者只有三个参数:数据项的命名容器、数据字段名称和格式字符串。在模板化列表中(如 DataList 类、DataGrid 类或 Repeater 类),命名容器始终是 Container.DataItem。
<%# DataBinder.Eval(Container.DataItem, "IntegerValue", "{0:c}") %>
格式字符串参数是可选的。若是它被忽略,DataBinder.Eval 将返回类型对象的值,以下面的示例所示:
<%# (bool)DataBinder.Eval(Container.DataItem, "BoolValue") %>
当对模板化列表中的控件进行数据绑定时,DataBinder.Eval 特别有用,由于数据行和数据字段一般都必须强制转换。
[3].其它
 Eval:绑定的是只读数据的显示;Bind:能够绑定只读数据也能够绑定更新数据,Bind方法还把字段和控件的绑定属性联系起来,使得数据控件(好比GridView等)的Update、Insert和Delete等方法可使用这种联系来做出相应的处理。

Eval 和 Bind绑定的数据在<%# %> 显示, 若对要显示的数据做修改或者操做也在<%# %> 中,例如:

1)对显示的字符串做字符显示:<%# (Eval("Address")).ToString().SubString(0,10)%>,显示10位数的地址。

2)对显示的信息做判断:<%# (Eval("if_delete")).ToString == "yes" ?"已删除":"未删除"%>

三、<%@ %> 表示:引用
如在不少.aspx页面中,均可以看到以下的代码:

<%@ Page Language="C#"   CodeFile="Default.aspx.cs" Inherits="_Default" %>

四、<% 函数 %>中间通常放函数或者方法,典型的asp程序写法。
例如:

<tr bgcolor="#ffffff"> 
    <td height="20"> 
        <div align="center">种类</div> 
    </td> 
    <td height="9">  
        <% getTypeList(); %> 
    </td> 
</tr>
<script type="text/javascript">
function getTypeList(){}
</
script>
相关文章
相关标签/搜索