建设网站价格,一个网站如何进行推广宣传,wordpress 菜单添加图标,系统开发难度最大的阶段模板化的数据绑定控件为我们在页面上显示数据提供了根本的灵活性。你可能还记得ASP.NET v1.x中的几个模板化控件#xff08;例如DataList和Repeater控件#xff09;。ASP.NET 2.0仍然支持这些控件#xff0c;但在模板中绑定数据的语法已经被简化和改善了。本文将讨论在数据绑…模板化的数据绑定控件为我们在页面上显示数据提供了根本的灵活性。你可能还记得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一样可以接受一个可选的格式化字符串参数。缩短的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 IDDataList1 RepeatColumns5 Width600 runatserver DataSourceIDObjectDataSource1 ItemTemplate asp:HyperLink IDHyperLink1 runatserver NavigateUrl%# Eval(PhotoID, PhotoFormViewPlain.aspx?ID{0}) % asp:Image IDImage1 Runatserver ImageUrl%# Eval(FileName, images/thumbs/{0}) % //asp:HyperLink asp:Label IDCaptionLabel runatserver Text%# Eval(Caption) % / /ItemTemplate/asp:DataListbr /asp:ObjectDataSource IDObjectDataSource1 runatserver TypeNameDataComponentTableAdapters.PhotosTableAdapter SelectMethodGetPhotosForAlbum 数据绑定也可以作为控件的主题定义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 IDFormView1 runatserver DataSourceIDObjectDataSource1 ItemTemplate asp:Label IDCaptionLabel runatserver Text%# Eval(Caption) % Font-Size32pt /br / asp:Image IDImage1 runatserver ImageUrl%# Eval(FileName, images/{0}) % / asp:HyperLink IDHyperLink1 TextBack to Album NavigateUrl%# Eval(AlbumID, PhotosDataList.aspx?ID{0}) % runatserver / /ItemTemplate/asp:FormViewasp:ObjectDataSource IDObjectDataSource1 runatserver TypeNameDataComponentTableAdapters.PhotosTableAdapter SelectMethodGetPhoto SelectParametersasp:QueryStringParameter NamePhotoID DefaultValue9 QueryStringFieldID //SelectParameters/asp:ObjectDataSource FormView与DetailsView类似也跟踪当前显示的数据项但是当数据源返回列表的时候我们也可以选择支持多个数据项的分页操作。下面的例子显示了一个带有分页功能的FormView。asp:FormView IDFormView1 Runatserver DataSourceIDSqlDataSource1HeaderTextBooks for Author AllowPagingTrue ItemTemplate asp:Image IDImage1 ImageUrl%# Eval(title_id,~/Images/{0}.gif) % Runatserver / asp:Label IDLabel1 Font-Size1.2em Font-Boldtrue Text%# Eval(title) % runatserver / asp:Label IDLabel2 Text%# Eval(price,{0:c}) % runatserver / /ItemTemplate/asp:FormView