日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

ASP.NET 2.0中实现模板中的数据绑定

發(fā)布時(shí)間:2025/3/8 asp.net 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET 2.0中实现模板中的数据绑定 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
模板化的數(shù)據(jù)綁定控件為我們?cè)陧?yè)面上顯示數(shù)據(jù)提供了根本的靈活性。你可能還記得ASP.NET?v1.x中的幾個(gè)模板化控件(例如DataList和Repeater控件)。ASP.NET?2.0仍然支持這些控件,但在模板中綁定數(shù)據(jù)的語(yǔ)法已經(jīng)被簡(jiǎn)化和改善了。本文將討論在數(shù)據(jù)綁定控件模板中綁定數(shù)據(jù)的多種方法。

  數(shù)據(jù)綁定表達(dá)式

  ASP.NET?
2.0改善了模板中的數(shù)據(jù)綁定操作,把v1.x中的數(shù)據(jù)綁定語(yǔ)法DataBinder.Eval(Container.DataItem,?fieldname)簡(jiǎn)化為Eval(fieldname)。Eval方法與DataBinder.Eval一樣可以接受一個(gè)可選的格式化字符串參數(shù)。縮短的Eval語(yǔ)法與DataBinder.Eval的不同點(diǎn)在于,Eval會(huì)根據(jù)最近的容器對(duì)象(例如DataListItem)的DataItem屬性來(lái)自動(dòng)地解析字段,而DataBinder.Eval需要使用參數(shù)來(lái)指定容器。由于這個(gè)原因,Eval只能在數(shù)據(jù)綁定控件的模板中使用,而不能用于Page(頁(yè)面)層。當(dāng)然,ASP.NET?2.0頁(yè)面中仍然支持DataBinder.Eval,你可以在不支持簡(jiǎn)化的Eval語(yǔ)法的環(huán)境中使用它。

  下面的例子演示了如何使用新的簡(jiǎn)化的Eval數(shù)據(jù)綁定語(yǔ)法綁定到DataList數(shù)據(jù)項(xiàng)模板(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">?

  數(shù)據(jù)綁定也可以作為控件的主題定義(theme?definition)的一部分,這樣我們就可以通過(guò)改變主題來(lái)隨意地改變模板化控件的布局和外觀。但是Theme(主題)模板中只能使用Eval(或者后面討論的Bind)。綁定到任意的用戶代碼是被禁止的。?

  FormView控件

  DataList控件在來(lái)自數(shù)據(jù)源的數(shù)據(jù)項(xiàng)中進(jìn)行迭代操作,并為每個(gè)數(shù)據(jù)項(xiàng)輸出ItemTemplate(數(shù)據(jù)項(xiàng)模板)。這對(duì)于顯示數(shù)據(jù)項(xiàng)列表是有用的,但是通常情況下,你希望在一個(gè)窗體中實(shí)現(xiàn)單條數(shù)據(jù)項(xiàng)的綁定操作。為了實(shí)現(xiàn)這個(gè)目的,ASP.NET?
2.0引入了FormView控件,它能夠在任意的模板中每次顯示一個(gè)數(shù)據(jù)項(xiàng)。DetailsView和FormView之間的主要差異在于,DetailsView擁有內(nèi)建的表格顯示方式,而FormView需要使用用戶自定義的顯示模板。在其它方面FormView和DetailsView對(duì)象模型是非常相似的。下面的例子顯示了一個(gè)綁定到ObjectDataSource的FormView控件。該FormView的ItemTemplate屬性包含數(shù)據(jù)綁定的Image、Label和HyperLink控件,與前面的DataList示例類似。

<asp:FormView?ID
="FormView1"?runat="server"?DataSourceID="ObjectDataSource1"
 <ItemTemplate>
  <asp:Label?ID
="CaptionLabel"?runat="server"?Text=''%#?Eval("Caption")?%''?Font-Size="32pt"?/><br?/
  <asp:Image?ID
="Image1"?runat="server"?ImageUrl=''%#?Eval("FileName",?"images/{0}")?%''?/
  <asp:HyperLink?ID
="HyperLink1"?Text="Back?to?Album"?NavigateUrl=''%#?Eval("AlbumID",?"PhotosDataList.aspx?ID={0}")?%''?runat="server"?/
 <
/ItemTemplate>
/asp:FormView>
<asp:ObjectDataSource?ID
="ObjectDataSource1"?runat="server"?TypeName="DataComponentTableAdapters.PhotosTableAdapter"?SelectMethod="GetPhoto"
 <SelectParameters>
<asp:QueryStringParameter?Name
="PhotoID"?DefaultValue="9"?QueryStringField="ID"?/
/SelectParameters>
/asp:ObjectDataSource>?

  FormView與DetailsView類似,也跟蹤當(dāng)前顯示的數(shù)據(jù)項(xiàng),但是當(dāng)數(shù)據(jù)源返回列表的時(shí)候,我們也可以選擇支持多個(gè)數(shù)據(jù)項(xiàng)的分頁(yè)操作。下面的例子顯示了一個(gè)帶有分頁(yè)功能的FormView。

<asp:FormView?ID
="FormView1"?Runat="server"?DataSourceID="SqlDataSource1"
HeaderText
="Books?for?Author"?AllowPaging="True"
 <ItemTemplate>
  <asp:Image?ID
="Image1"?ImageUrl=''%#?Eval("title_id","~/Images/{0}.gif")?%''?Runat="server"?/
  <asp:Label?ID
="Label1"?Font-Size="1.2em"?Font-Bold="true"?Text=''%#?Eval("title")?%''?runat="server"?/
  <asp:Label?ID
="Label2"?Text=''%#?Eval("price","{0:c}")?%''?runat="server"?/
 <
/ItemTemplate>
/asp:FormView>

總結(jié)

以上是生活随笔為你收集整理的ASP.NET 2.0中实现模板中的数据绑定的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。