ASP.NET 2.0中实现模板中的数据绑定
生活随笔
收集整理的這篇文章主要介紹了
ASP.NET 2.0中实现模板中的数据绑定
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
模板化的數據綁定控件為我們在頁面上顯示數據提供了根本的靈活性。你可能還記得ASP.NET?v1.x中的幾個模板化控件(例如DataList和Repeater控件)。ASP.NET?2.0仍然支持這些控件,但在模板中綁定數據的語法已經被簡化和改善了。本文將討論在數據綁定控件模板中綁定數據的多種方法。
數據綁定表達式
ASP.NET?2.0改善了模板中的數據綁定操作,把v1.x中的數據綁定語法DataBinder.Eval(Container.DataItem,?fieldname)簡化為Eval(fieldname)。Eval方法與DataBinder.Eval一樣可以接受一個可選的格式化字符串參數??s短的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)。綁定到任意的用戶代碼是被禁止的。?
FormView控件
DataList控件在來自數據源的數據項中進行迭代操作,并為每個數據項輸出ItemTemplate(數據項模板)。這對于顯示數據項列表是有用的,但是通常情況下,你希望在一個窗體中實現單條數據項的綁定操作。為了實現這個目的,ASP.NET?2.0引入了FormView控件,它能夠在任意的模板中每次顯示一個數據項。DetailsView和FormView之間的主要差異在于,DetailsView擁有內建的表格顯示方式,而FormView需要使用用戶自定義的顯示模板。在其它方面FormView和DetailsView對象模型是非常相似的。下面的例子顯示了一個綁定到ObjectDataSource的FormView控件。該FormView的ItemTemplate屬性包含數據綁定的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類似,也跟蹤當前顯示的數據項,但是當數據源返回列表的時候,我們也可以選擇支持多個數據項的分頁操作。下面的例子顯示了一個帶有分頁功能的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>
數據綁定表達式
ASP.NET?2.0改善了模板中的數據綁定操作,把v1.x中的數據綁定語法DataBinder.Eval(Container.DataItem,?fieldname)簡化為Eval(fieldname)。Eval方法與DataBinder.Eval一樣可以接受一個可選的格式化字符串參數??s短的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)。綁定到任意的用戶代碼是被禁止的。?
FormView控件
DataList控件在來自數據源的數據項中進行迭代操作,并為每個數據項輸出ItemTemplate(數據項模板)。這對于顯示數據項列表是有用的,但是通常情況下,你希望在一個窗體中實現單條數據項的綁定操作。為了實現這個目的,ASP.NET?2.0引入了FormView控件,它能夠在任意的模板中每次顯示一個數據項。DetailsView和FormView之間的主要差異在于,DetailsView擁有內建的表格顯示方式,而FormView需要使用用戶自定義的顯示模板。在其它方面FormView和DetailsView對象模型是非常相似的。下面的例子顯示了一個綁定到ObjectDataSource的FormView控件。該FormView的ItemTemplate屬性包含數據綁定的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類似,也跟蹤當前顯示的數據項,但是當數據源返回列表的時候,我們也可以選擇支持多個數據項的分頁操作。下面的例子顯示了一個帶有分頁功能的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>
總結
以上是生活随笔為你收集整理的ASP.NET 2.0中实现模板中的数据绑定的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bat 存储过程返回值_使用Mybati
- 下一篇: python plot map_使用ma