1.Repeater控件
在用到数据库数据并且要逐条显示时,就需要用到repeater\listview等这样的数据库控件进行动态的显示数据。
- Repeater相当于foreach的功能,用于对绑定数据源中的数据进行遍历显示,每条数据以什么样的格式显示是由它的<ItemTemplate>来决定的,模板会多次显示<ItemTemplate><%#Eval("字段")%></ItemTemplate>中的内容,直到遍历完成。
- <%#Eval("Name")%>表示在这个位置显示当前行的Name字段。调用Eval\Bind这些数据绑定方法的时候要用#. Eval()是只读的,即把数据库中的数据读取到显示的控件中显示出来,是单向的。Bind()是可读写的,即可以把数据从数据库中读取到显示的控件,也可以把控件中的值写入到数据库中,是双向的。
- 因为Eval就是将属性显示到指定的位置,因此也可以显示到文本框中,如<ItemTemplate><input type="text" value='<%#Eval("Name")%>' /></ItemTemplate>
- 不要写成value="<%#Eval('Name')%>" ,因为<%%>中的是C#代码,"是字符而不是字符串.
- 也可以在服务端控件<asp:TextBox Text='<%#Eval("Name")%>' runat="server"></asp:TextBox>
- <AlternatingItemTemplate>,是设置隔行的不同显示风格,如果设定<AlternatingItemTemplate>,则奇数行用<ItemTemplate>模板,偶数行用<AlternatingItemTemplate>模板。
- <AlternatingItemTemplate><asp:TextBox BackColor="Red" ID="TextBox2" Text='<%#Eval("Name")%>' runat="server" /></AlternatingItemTemplate>,设置隔行变色是为了防止数据太多看提眼花。
- <HeaderTemplate>和<FooterTemplate>分别为头部、尾部的模板,分别显示在所有数据的前面和后面。
- <SeparatorTemplate>:两项数据之间的分隔符,比如换行符等。