C#Evealのaspxページでの使い方と役割

9528 ワード

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  。



 



Codeasp: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  

//      

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



//{0:G}    True False



CodeItemTemplate>

    <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")%>



    ,                    。



<%# ((DataRowView)Container.DataItem)["xxxx"]%>



    ,               。



                      System.Data,         。



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



       <%# ((DictionaryEntry)Container.DataItem).Key%>     。



   Container    ,       System.ComponentModel。





3.DataBinder.Eval Container.DataItem   

                                       

DataBinder.Eval(Container.DataItem,"Name") Container.DataItem("Name")     ?

DataBinder System.Web        ,    Eval                ,            Reflection               ,           。 Container                 ,   ASP.NET                         ,                      (  Repeater           RepeaterItem),           DataItem  ,      Container.DataItem,                          。        DataTable,            DataRowView。



 



  :http://www.cnblogs.com/yangjunwl/articles/1120560.html



 



 



            <%# %>    。    :



<tagprefix:tagname property='<%# data-binding expression %>' runat="server" />



    :



<%# data-binding expression %>



ASP.NET           ,          Eval   Bind           ,          。

Eval        (  )  ,  Eval       (  )  ,                         。

Bind      /   ,  Bind       (   )  。                           。

XPath      XML          。



                     ?



 ,                       html           /       。  :



<asp:TextBox ID="TextBox1" runat="server" Text='<%#       %>' ></asp:TextBox><br />

    :                 ,           C#  VB.NET  ,               ,    C#  VB.NET               。              ,  "hello"。

             Eval("            ") ,     TextBox1                  ,      :Eval()、XPath()   Bind()                         。        TextBox1   Repeater,DataList,GridView          。



 ,                     。  :





<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   。  :



Deafult2.aspx:@ 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>

 



 



Default2.cs: 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,       

  :<asp:Label ID="Label1" runat="server" Text="<%#   %>"></asp:Label>

2,            

  : <asp:Label ID="Label1" runat="server" Text="<%#TextBox2.Text %>"></asp:Label>

3,            

              ,  ListBox ,  Repeater,DataList,GridView      ,        DataSource='<%#    %>' 。

4,        

  :Person     ,Name City   2   ,             :

<%#(Person.Name + " " + Person.City)%>。

5,       

  :<%#GetUserName()%>。GetUserName()        C#  ,        。

6,    Eval,DateBind.Eval         ,        ,    。



  :               ,                 ,  <%#       %>                。               , <%#       %>           。



                   ?



1,<%#DataBind.Eval(Container.DataItem,"   ")%>

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

       2     :

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

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

      Container.DataItem                ,         。

              String.Format     。  c    ,p     ,d         ,f       ,f3        ,    。



                ?:   :

 <%# DataBinder.Eval(Container.DataItem, "    ").ToString().Trim().Length>16?DataBinder.Eval(Container.DataItem, "    ").ToString().Trim().Substring(0,16):DataBinder.Eval(Container.DataItem, "   ").ToString().Trim() %>



2,<%#Eval("   ")%>

     <%#Eval("   ","{0:c}")%>

     .NET 2.0        。 DataBind.Eval()  。

             String.Format     。  c    ,p     ,d         ,f       ,f3        ,    。



               :

<%#(Eval("  ")).ToString() =="True"?" ":" "%>  

        : / (Access),bit(sql server)

               :

  <%# GetUserPhoto(Eval("PhotoPath")) %>    

     GetUserPhoto()   :





string GetUserPhoto(object photoPath)

{

  if (photoPath == DBNull.Value)<%#((DataRowView)Container.DataItem)["   "] %>



  {

      return "<img src='Images/none.gif'>";

  }

  else

  {

    return "<img src='Upload/" +photoPath.ToString() + "'>";

  }

}

 3, <%#((DataRowView)Container.DataItem)["   "] %>

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

           String.Format           。  c    ,p     ,d         ,f       ,f3        ,    。

       

             :<%# (int)((DataRowView)Container.DataItem)["   1"]*(int) ((DataRowView)Container.DataItem)["   2"]%>       2     。

     

           :Eval         DataBinder.Eval  ,DataBinder.Eval                   ,         。           。     <%#((DataRowView)Container.DataItem) ["   "] %>     。