




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据绑定概要 语法ASP.NET 引入了一种新的声明语法 。该语法是在 .aspx 页中使用数据绑定的基础。所有数据绑定表达式都必须包含在这些字符中。下面的列表包含从多个源进行简单数据绑定的示例: 简单属性(用于客户的语法): 集合(用于订单的语法): asp:ListBox id=List1 datasource= runat=server 表达式(用于联系人的语法): 方法结果(用于未结清余额的语法): 在前面的示例中, 内联标记用于指示将把特定数据源中的信息放在 .aspx 页中的什么位置。以下数据绑定示例使用 TextBox Web 服务器控件:asp:textbox id=txt text= runat=server /Page.DataBind() 与 Control.DataBind()为 .aspx 页上的对象确定并设置了特定数据源后,必须将数据绑定到这些数据源。您可以使用 Page.DataBind 或 Control.DataBind 方法将数据绑定到数据源。这两种方法的使用方式很相似。主要差别在于:调用 Page.DataBind 方法后,所有数据源都将绑定到它们的服务器控件。在显式调用 Web 服务器控件的 DataBind 方法或在调用页面级的 Page.DataBind 方法之前,不会有任何数据呈现给控件。通常,可以从 Page_Load 事件调用 Page.DataBind(或 DataBind)。有关 DataBind 方法的详细信息,请参阅以下 .NET Framework SDK 文档:Control.DataBind 方法/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWebUIControlClassDataBindTopic.asp (/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWebUIControlClassDataBindTopic.asp) 回到顶端数据绑定列表控件列表控件是可以绑定到集合的特殊的 Web 服务器控件。您可以使用这些控件以自定义的模板格式显示数据行。所有列表控件都公开 DataSource 和 DataMember 属性,这些属性用于绑定到集合。这些控件可以将其 DataSource 属性绑定到支持 IEnumerable、ICollection 或 IListSource 接口的任一集合。Repeater 控件 Repeater 控件是模板化的数据绑定列表。Repeater 控件是“无外观的”;即,它不具有任何内置布局或样式。因此,您必须在控件的模板中明确声明所有 HTML 布局标记、格式标记和样式标记。以下代码示例向您演示了如何使用 Repeater 这一列表控件显示数据:注意:必须根据您环境的需要修改连接字符串的参数。通过前面的例子我们看到每次我们要显示数据的时候都要通过一个循环来显示满足条件的数据,这是一个比较麻烦的过程,为此微软定义了一系列的控件专门 用于显示数据的格式,通过这些控件可以以可视化的方式查看绑定数据之后的效果。这些控件称之为数据绑定控件。在中所有的数据库绑定控件都是 从BaseDataBoundControl这个抽象类派生的,这个抽象类定义了几个重要属性和一个重要方法:DataSource属性:指定数据绑定控件的数据来源,显示的时候程序将会从这个数据源中获取数据并显示。DataSourceID属性:指定数据绑定控件的数据源控件的ID, 显示的时候程序将会根据这个ID找到相应的数据源控件,并利用这个数据源控件中指定方法获取数据并显示。DataBind() 方法:当指定了数据绑定控件的DataSource属性或者DataSourceID属性之后,再调用DataBind()方法才会显示绑定的数据。并且 在使用数据源时,会首先尝试使用DataSourceID属性标识的数据源,如果没有设置DataSourceID时才会用到DataSource属性标 识的数据源。也就是说DataSource和DataSourceID两个属性不能同时使用。数据绑定控件的DataSource控件属性必须是一个可以枚举的数据源,如实现了ICollection、IEnumerable或IListSource接口的类的实例。今天要讲述的内容有:DropDownList控件ListBox控件GridView控件DataList控件Repeater控件FormView控件DetailsView控件DropDownList控件DropDownList控件是一个相对比较简单的数据绑定控件,它在客户端被解释成这样的HTML标记,也就是只能有一个选项处于选中状态。DropDownList控件常见属性:AutoPostBack 属性:这个属性的用法在讲述基本控件的时候已经讲过,是用来设置当下拉列表项发生变化时是否主动向服务器提交整个表单,默认是false,即不主动提交。 如果设置为true,就可以编写它的SelectedIndexChanged事件处理代码进行相关处理(注意:如果此属性为false即使编写了 SelectedIndexChanged事件处理代码也不会马上起作用)。DataTextField属性:设置列表项的可见部分的文字。DataValueField属性:设置列表项的值部分。Items属性:获取控件的列表项的集合。SelectedIndex属性:获取或设置 DropDownList 控件中的选定项的索引。SelectedItem属性:获取列表控件中索引最小的选定项。SelectedValue属性:取列表控件中选定项的值,或选择列表控件中包含指定值的项。因为在实际开发中,用户希望直观地看见选中哪个选项,而在操作数据库的时候我们更希望直接以该值对应的编号来操作,利用DataTextField 属性和DataValueField属性就可以很方便地做到这一点,这两个属性通常是数据源中的某个字段名(如果DataSource属性是 DataTable或者是DataView的话)或者范型集合中实体的属性(如果DataSource属性是 System.Collections.Generic.List的话,则可以指定为T的属性)。下面是DropDownList控件的例子,依然用到的是第六章中创建的表(本代码采用了单页模式): 注意,第二个DropDownList控件绑定数据源时有两句话必不可少,就是:另外,DropDownList控件默认情况下是第一个选项处于选中状态,如果我们想在绑定数据之后让某个选项处于选中状态,可以利用它的Items属性,DropDownList控件的Items属性其实是一个ListItemCollection的实例,ListItemCollection类有两个重要方法:public ListItem FindByText (string text):在选项集合中查找指定文字的选项。public ListItem FindByValue (string value) :在选项集合中查找指定值的选项。利用这个属性,我们可以让某个选项在数据绑定后就处于选中状态。比如在上面的代码中我们希望绑定数据源后,让刘备处于选中状态,那么我们的BindUserList()的代码可以这么写:ListBox控件ListBox控件和DropDownList控件非常类似,ListBox控件是也是提供一组选项供用户选择的,只不过DropDownList控件只能有一个选项处于选中状态,并且每次只能显示一行(一个选项),而ListBox控件可以设置为允许多选,并且还可以设置为显示多行。除了与DropDownList具有很多相似的属性之外,ListBox控件还有以下属性:Rows属性:设置ListBox控件显示的行数。SelectionMode属性:设置ListBox的选择模式,这是一个枚举值,它有Multiple和Single两个值,分别代表多选和单选,默认是Single,即同时只能有一个选项处于选中状态。如果要想实现多选,除了设置SelectionMode属性为Multiple外,在选择时需要按住Ctrl键。需要说明的是,因为ListBox允许多选,所以如果ListBox的SelectionMode属性为Multiple,那么SelectedIndex属性指的是被选中的选项中索引最小的那一个,SelectedValue属性指的是被选中的选项集合中索引最小的那一个的值。下面是ListBox的用法举例:按住Ctrl键同时选择几个选项,然后点击“确定”按钮之后的结果:GridView控件GridView控件作为1.1下的DataGrid的替代品,它内置了表格呈现样式。GridView 控件用来在表中显示数据源的值。每列表示一个字段,而每行表示一条记录。GridView 控件支持下面的功能:绑定至数据源控件,如 SqlDataSource。内置排序功能。内置更新和删除功能。内置分页功能。内置行选择功能。以编程方式访问 GridView 对象模型以动态设置属性、处理事件等。多个键字段。用于超链接列的多个数据字段。可通过主题和样式进行自定义的外观。可以实现多种样式的数据展示。GridView控件主要有以下常见属性:AllowPaging属性:设置是否启用分页功能。 AllowSorting 属性:设置是否启用排序功能。AutoGenerateColumns 属性:设置是否为数据源中的每个字段自动创建绑定字段。这个属性默认为true,但在实际开发中很少会自动创建绑定列,我们总会根据一些情况让一些列不显示,比如显示用户列表的时候不会将用户密码显示出来,显示文章列表的时候不会将文章内容显示出来。Columns属性:获取 GridView 控件中列字段的集合。PageCount属性:获取在 GridView 控件中显示数据源记录所需的页数。 PageIndex属性:获取或设置当前显示页的索引。 PagerSetting属性:设置GridView的分页样式。PageSize属性:设置GridView控件每次显示的最大记录条数。下图是将一个GridView控件拖到页面的情况:点击“编辑列”会出现下面的界面:从上面的图中我们可以看出在GridView中可以显示7中类型的字段,它们分别是:BoundField:绑定字段,以文本的方式显示数据。CheckBoxField:复选框字段,如果数据库是bit字段,则以此方式显示。HyperLinkField:用超级连接的形式的显示字段值。ImageField:用于显示存放Image图象的url字段数据,显示成图片效果。ButtonField:显示按钮列。CommandField:显示可执行操作的列,可以执行编辑或者删除等操作。可以设置它的ButtonType属性来决定显示成普通按钮、图片按钮或者超级链接。TemplateField:自定义数据的显示方式,在这里我们可以使用我们所熟悉的HTML控件或者 Web服务器控件。对于我们经常使用到的Users这个表,这次我们不再使用for循环来显示了,这次使用GridView控件来显示。GridView控件的字段大都有HeaderText这个属性,这个属性是用来设置数据的镖头的,如果我们不设置的话默认都是以数据库的相应字段作为表头。另外还有一个DataField属性,这个属性是用来设置要绑定显示的数据的属性或者列名。在这里我们希望在显示的时候给出一个链接,用户可以点击这个链接跳转到查看详细介绍的页面,并且我们还希望将用户的电子邮件显示成超级链接的方式。在这里还需要介绍一个属性:DataNavigateUrlFormatString,类似的还有DataTextFormatString,有时候在显示数据的时候我们并不希望仅仅将数据简简单单显示,还希望用一定的格式来显示,那么就可以设置这个属性,在显示的时候我们用到了一个HyperLinkField,用来显示一个超级链接,它的设置如下:DataNavigateUrlFormatString属性的值为ShowUser.aspx?UserId=0,而DataNavigateUrlFields属性的值为UserId,也就是将来显示每行数据的时候都会将该行对应的“UserId”字段的值替换0,类似于string.Format(ShowUser.aspx?UserId=0,“UserId”的值)。 对于电子邮件的显示,我们发现BoundField、CheckBoxField、HyperLinkField、ImageField和ButtonField及CommandField字段都较难实现或者根本不可能实现我们的要求,这时可以使用TemplateField这种类型的字段。在GridView控件中TemplateField字段中可以定义5中不同类型的模版,分别如下:AlternatingItemTemplate:交替项模版,即偶数项中显示的内容,可以进行数据绑定。EditItemTemplate:编辑项模版,当当前这条数据处于编辑状态的时候要显示的内容,可以进行数据绑定。FooterTemplate:脚模版,即脚注部分要显示的内容,不可以进行数据绑定。HeaderTemplate:头模版,即表头部分要显示的内容,不可以进行数据绑定。ItemTemplate:项模版,处于普通项中要显示的内容,如果指定了AlternatingItemTemplate中的内容,则这里的设置是奇数项的显示效果。可以进行数据绑定。注意:可以不设置AlternatingItemTemplate,如果没有设置AlternatingItemTemplate,那么所有的数据项在非编辑模式下都按照ItemTemplate中的设置显示。下面是用分页显示Users表中的数据的例子,对于奇数行用户的电子邮件仅仅显示电子邮件地址,偶数行的用户显示为超级链接。以下是代码:点击第二页的效果:对于GridView的用法笔者要说明几点:1、 上面的代码采用了默认的自定义分页,这种分页每次翻页的时候都会将所有的数据全部从数据中取出来,根据当前页索引和每页要显示的记录条数决定要显示哪些记 录,其它的数据会被丢弃掉,在数据量比较大的时候会导致性能低下。对于表中有大量数据的情况,需要自已写分页方法,每次只从数据库中取出需要显示的数据, 提高网站的性能,并且根据当前页索引显示页面跳转导航链接,关于如何分页查询在本系列文章中ADO.NET部分笔者已经讲过,这里不再赘述。2、当DataSource中没有任何记录时,GridView默认是没有任何显示的。我们还可以给GridView添加一种效果,即当GridView中没有任何数据时给用户提示。这个可以通过给GridView添加EmptyDataTemplate模版,定义没有数据数据时显示的内容,对上面的GridView我们给它添加如果没有数据的功能。在添加如下内容:温馨提示:当前没有任何记录哦。,这时GridView的定义如下:3、如果当前的项显示样式不符合我们的要求的时候,我们可以设置项的显示样式,如下图:4、注意:在本例中数据绑定时都加了if (!Page.IsPostBack)这种判断,这样做的目的是不会因为某个控件的提交页面导致整个页面的重新绑定,绝大部分情况下这种重新数据绑定是没有必要的、而且会影响网站的效率的。在实际开发中,各位朋友要区分这一情况。GridView中实现反选和全选功能在显示数据的时候经常有一些批量操作的功能,比如数据的批量删除等,我们可以利用javascript脚本来辅助实现这一功能,不过如果用中的CheckBox控件来实现这个功能的话,比较麻烦,因为在GridView这样的控件将中的Web服务器控件转换成普通HTML控件的时候不能直接按照控件的ID来分配,存在着在一个GridView中有多个CheckBox控件,为了防止命名冲突, 为页上的各个服务器控件自动生成一个唯一的 ClientID 值。ClientID 值是通过连接控件的 ID 值和它的父控件的 UniqueID 值生成的。如果未指定控件的 ID 值,则使用自动生成的值。如果我们在GridView中添加一个CheckBox控件,我们在生成的HTML控件中会发现它生成的HTML代码类似于下面的格式:javascript操作GridView这样的控件中的 Web服务器控件一定要注意这个情况,可以通过 Web服务器控件的ClientID属性来操作。 这时候我们可以使用普通HTML控件来达到我们想要的功能,对于普通HTML控件是不会更改它的id和name属性的。实现了单选和复选功能之后,我们如何获取选中的值呢?因为是普通HTML控件,自然不能像 Web服务器控件那样利用某个属性来判断,不过我们可以利用一个 Button服务器控件来提交表单,然后通过Request“控件的name”来获取选中的值(没有印象的朋友赶紧看第三页的介绍),得到值是形如“15,16,17”这样的字符串,这时我们可以利用SQL语句来进行批量操作,我们的SQL语句可以这么写:String sql=”delete from Users where UserId in(“+RequestCheckboxGroup+”)”;这样就不必进行分割字符串的操作,只连接数据库操作就删除了选中的数据,大大提高了效率。因为整个程序的代码比较复杂,所以采用了页面和代码分离的模式,前台代码如下: 1. usingSystem;2. usingSystem.Data;3. usingSystem.Configuration;4. usingSystem.Collections;5. usingSystem.Web;6. usingSystem.Web.Security;7. usingSystem.Web.UI;8. usingSystem.Web.UI.WebControls;9. usingSystem.Web.UI.WebControls.WebParts;10. usingSystem.Web.UI.HtmlControls;11. usingSystem.Data.SqlClient;12. publicpartialclassMultiSelectGridView:System.Web.UI.Page13. 14. protectedvoidPage_Load(objectsender,EventArgse)15. 16. if(!Page.IsPostBack)17. 18. BindGridView(0);19. 20. 21. /指定绑定页面的数据 22. privatevoidBindGridView(intpageIndex)23. 24. /实例化Connection对象 25. SqlConnectionconnection=newSqlConnection(DataSource=(local);InitialCatalog=AspNetStudy;PersistSecurityInfo=True;UserID=sa;Password=sa);26. /实例化Command对象 27. SqlCommandcommand=newSqlCommand(select*fromUserInfo,connection);28. SqlDataAdapteradapter=newSqlDataAdapter(command);29. DataTabledata=newDataTable();30. adapter.Fill(data);31. gvUserList.DataSource=data;32. gvUserList.PageIndex=pageIndex;/设置当前显示第几页 33. gvUserList.DataBind();34. 35. /翻页事件 36. protectedvoidgvUserList_PageIndexChanging(objectsender,GridViewPageEventArgse)37. 38. /指定新页面,重新绑定数据 39. BindGridView(e.NewPageIndex);40. 41. /删除选中的用户代码 42. protectedvoidbtnDelete_Click(objectsender,EventArgse)43. 44. stringsql=deletefromUserInfowhereUserIdin(+RequestCheckboxGroup+);45. SqlConnectionconnection=newSqlConnection(DataSource=(local);InitialCatalog=AspNetStudy;PersistSecurityInfo=True;UserID=sa;Password=sa);46. SqlCommandcommand=newSqlCommand(sql,connection);47. connection.Open();48. intcount=command.ExecuteNonQuery();49. connection.Close();50. /删除成功后给出提示,并且跳转到当前页面 51. if(count0)52. 53. Page.ClientScript.RegisterClientScriptBlock(54. this.GetType(),success,55. alert(删除成功!);56. +window.location=MultiSelectGridView.aspx;57. );58. 59. else/删除不成功给出不成功的提示 60. 61. Page.ClientScript.RegisterClientScriptBlock(62. this.GetType(),fail,63. alert(删除成功!);64. );65. 66. 67. 页面的初始运行效果:当一个也没有选择的时候点“删除”按钮之后的效果:当选中一部分之后再点击“删除”的效果:点击“确定”之后就会删除所有处于选中状态的用户,并且弹出删除成功的提示框,用户点击确定又会跳转到当前页面,显示删除选中用户之后的效果。对上面的程序作如下说明:1、在页面的前台代码中使用了几个javascript函数用于实现全选、反选和判断用户是否选择了至少一项及删除确认对话框的功能,“var checkbox = document.all.CheckboxGroup;”这句代码的作用是获取当前页面中所有name为”CheckboxGroup”的HTML控件,而我们在GridView中所有的实现选择的复选框的name属性就是”CheckboxGroup”。2、在GridView中可以使用普通HTML控件或者服务器控件,并且可以对它们的值或者某个属性进行绑定。DataList控件DataList是一个相对复杂一点的数据绑定控件,它需要使用者自己定义数据的展现格式,也就是需要在html层控制数据的展示格式。和GridView控件每行只能显示一条记录不同,DataList可以在一行显示多条记录。DataList支持以下模版:AlternatingItemTemplate、EditItemTemplate、FooterTemplate、HeaderTemplate、ItemTemplate和SelectedItemTemplate及SeparatorTemplate。其中AlternatingItemTemplate、EditItemTemplate、FooterTemplate和HeaderTemplate及ItemTemplate在TemplateField的支持的模版类型时已经介绍了,SelectedItemTemplatem模版是当该项处于选中状态的效果,SeparatorTemplate是各项之间分隔显示效果。DataList有两个重要属性,如下:RepeatColumns:DataList中要显示的列数。默认是0,即按照RepeatDirection的设置单行或者单列显示数据。RepeatDirection:DataList的显示方式,这个属性是一个枚举值,有Horizontal和Vertical两个值,分别代表水平和垂直显示。在使用DataList时经常会嵌套绑定,所谓嵌套就是在一个数据绑定控件中嵌套着另一个数据绑定控件。下面演示一下DataList进行嵌套绑定的效果。在这个效果里,首先将UserInfo表中的数据按照性别分类,然后在每种性别里分别跳出三个用户显示。首先向页面中添加一个DataList控件,如下图:点击“模版”,在它的ItemTemplate模版中再添加一个Label控件和一个DataList控件,如下图:对上述操作生成的前台代码我们做一些修改,如下: 1. usingSystem;2. usingSystem.Data;3. usingSystem.Configuration;4. usingSystem.Collections;5. usingSystem.Web;6. usingSystem.Web.Security;7. usingSystem.Web.UI;8. usingSystem.Web.UI.WebControls;9. usingSystem.Web.UI.WebControls.WebParts;10. usingSystem.Web.UI.HtmlControls;11. usingSystem.Data.SqlClient;12. publicpartialclassDataListDemo:System.Web.UI.Page13. 14. protectedvoidPage_Load(objectsender,EventArgse)15. 16. if(!Page.IsPostBack)17. 18. BindSex();19. 20. 21. /绑定顶级项目 22. privatevoidBindSex()23. 24. SqlConnectionconnection=newSqlConnection(DataSource=(local);InitialCatalog=AspNetStudy;PersistSecurityInfo=True;UserID=sa;Password=sa);25. SqlCommandcommand=newSqlCommand(selectdistinctsexfromUserInfo,connection);26. SqlDataAdapteradapter=newSqlDataAdapter(command);27. DataTabledata=newDataTable();28. adapter.Fill(data);29. DataList1.DataSource=data;30. DataList1.DataBind();31. 32. /当绑定DataList1中的每一项时的处理方法 33. protectedvoidDataList1_ItemDataBound(objectsender,DataListItemEventArgse)34. 35. /如果要绑定的项是交替项或者是普通项 36. /注意此外还有脚模板和脚模版 37. if(e.Item.ItemType=ListItemType.Item|38. e.Item.ItemType=ListItemType.AlternatingItem)39. 40. /e.Item表示当前绑定的那一行 41. /利用e.Item.FindControl(Label1)来找到那一行的id为Label1的Label控件 42. LabellbSex=(Label)(e.Item.FindControl(Label1);43. /利用e.Item.FindControl(Label1)来找到那一行的id为Label1的Label控件 44. DataListdl2=(DataList)(e.Item.FindControl(DataList2);45. boolmale=bool.Parse(lbSex.Text);46. dl2.DataSource=GetDataTable(male);47. dl2.DataBind();48. 49. 50. / 51. /根据性别来查找符合条件的用户 52. / 53. /是否为男性 54. / 55. privateDataTableGetDataTable(boolmale)56. 57. SqlConnectionconnection=newSqlConnection(DataSource=(local);InitialCatalog=AspNetStudy;PersistSecurityInfo=True;UserID=sa;Password=sa);58. SqlCommandcommand=newSqlCommand(selecttop3RealNamefromUserInfowhereSex=SexorderbyUserID,connection);59. command.Parameters.AddWithValue(Sex,male);/添加SqlParameter参数 60. SqlDataAdapteradapter=newSqlDataAdapter(command);61. DataTabledata=newDataTable();62. adapter.Fill(data);63. returndata;64. 65. 页面的最后运行效果:对上面的程序代码作几点说明:(1)在上面的代码中使用了两个DataList控件,其中第二个是位于第一个的ItemTemplate模版里面,这个用于绑定符合当前项中条件的数据,并且我们在第一个的ItemTemplate里面还用到了一个Label控件,这个Label是不可见的(Visible=false),使用这个控件并不是为了显示数据,而是为了保存第二个DataList要绑定显示的数据的条件。在这里我们是以性别作为顶级分类的,其实这个没有必要在数据库查询并进行绑定显示,这里只是通过这种方法来演示DataList如何进行嵌套绑定。(2)在嵌套绑定的时候我们利用了DataList的ItemDataBound事件,在绑定DataList中的每一项时候都会激发这个事件,当要绑定的项是普通项或者是交替项时,项模版里就有要显示子数据的DataList控件和我们隐藏Label控件,我们利用FindControl()方法找到这两个控件,利用Label的Text属性值作为条件去数据库查找满足条件的数据,并将返回的数据源绑定到第二个DataList上,这样就完成了DataList的嵌套绑定。Repeater控件Repeater控件的用法类似于DataList控件,只不过它不能在一行显示多行数据,不过它可以让我们更灵活地控制数据的显示样式。如果Repeater控件中没有定义模版或者模版中没有定义要显示的数据的显示方式,那么在运行时该控件在页面上不会有任何显示。Repeater服务器控件支持的模版有ItemTemplate、AlternatingItemTemplate、HeaderTemplate和FooterTemplate及SeparatorTemplate,这些模版的用法类似于DataList中对应的模版的用法。下面是Repeater控件的用法的例子。首先在页面中拖入一个Repeater控件,拖入Repeater控件之后页面的设计效果如下:可以看出使用Repeater控件时没有办法在设计视图下编辑控件模版,要编辑控件模版需要切换到源视图。在ADO.NET一节笔者展示了如何用Table来显示数据,具体做法是现在循环之前输出表头,然后在利用循环输出数据集合中的每条数据,最后在循环结束之后输出table的结束标记。如果在Repeater中想用Table的形式显示数据,我们的做法是如下:先在HeaderTemplate模版中定义表头,然后在ItemTemplate模版或AlternatingItemTemplate模版中定义数据的每条数据的显示方式,最后在FooterTemplate模版中定义table的结束标记。下面是前台代码: 1. usingSystem;2. usingSystem.Data;3. usingSystem.Configuration;4. usingSystem.Collections;5. usingSystem.Web;6. usingSystem.Web.Security;7. usingSystem.Web.UI;8. usingSystem.Web.UI.WebControls;9. usingSystem.Web.UI.WebControls.WebParts;10. usingSystem.Web.UI.HtmlControls;11. usingSystem.Data.SqlClient;12. publicpartialclassRepeaterDemo:System.Web.UI.Page13. 14. protectedvoidPage_Load(objectsender,EventArgse)15. 16. /仅当页面不是由页面的服务器控件提交表单而导致的页面加载才会绑定数据 17. if(!Page.IsPostBack)18. 19. /实例化Connection对象 20. SqlConnectionconnection=newSqlConnection(DataSource=(local);InitialCatalog=AspNetStudy;PersistSecurityInfo=True;UserID=sa;Password=sa);21. /实例化Command对象 22. stringsql=selecttop5*fromUserInfoorderbyUserIDdesc;23. SqlDataAdapteradapter=newSqlDataAdapter(sql,connection);24. DataTabledata=newDataTable();25. adapter.Fill(data);26. Repeater1.DataSource=data;27. Repeater1.DataBind();28. 29. 30. 以下是页面的显示效果:在这里例子里我们定义了交替项的显示效果,偶数行的编号是以文本框的形式展示,并且我们对用户性别做了处理之后才显示。前面讲到的GridView和DataList及Repeater控件是用来批量显示数据的,在这种情况下只显示数据库记录的概要信息,比如要显示论坛某个版块下的文章列表时肯定不会同时将文章内容页也是显示出来(为了提高查询效率实际开发中文章内容字段都不会出现在select查询SQL语句的字段列表中)。如果用户对某条记录感兴趣可以点击给定的超级链接来查看。这时我们就可以利用FormView或者DetailsView控件,它们就是用来显示单条记录的详细信息的。FormView控件Form控件的用法和Repeater控件的用法非常类似,它支持模版类型有EditItemTemplate、EmptyDataTemplate、FooterTemplate、HeaderTemplate、ItemTemplate和InsertItemTemplate、PagerTemplate,注意这里没有AlternatingItemTemplate模版(就一条记录自然就不会有什么奇偶行效果了)。FormView 控件支持以下功能: 绑定到数据源控件,如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年机械制造工程师资格考试试题及答案解析
- 2025年互联网运营总监专业水平检测试题及答案解析
- 2025年村级档案员招聘笔试模拟测试题
- 课件中使用图表的目的
- 小学英语长元音教学课件
- 2025年农业合作社财务专员面试模拟题
- 2025年宠物针灸治疗总结面试题及答案
- 数学可爱的小猫教学课件
- 2025年市级文化馆招聘面试模拟题及答案
- 2025年电梯安全使用题集
- 人教版九年级上册历史期末复习知识点考点背诵提纲详细版
- 护理人员行为规范
- 2025版安全生产法全文
- 2025年中国护腰垫数据监测报告
- 2025年中远海运集团招聘笔试备考题库(带答案详解)
- 新教师职业素养提升培训
- 2025至2030中国工业混合式步进电机行业发展趋势分析与未来投资战略咨询研究报告
- 小学生课件藏文版下载
- 委托协议承办会议协议书
- 养生馆转让协议书
- 外观检验考试试题及答案
评论
0/150
提交评论