ASP.NET中数据控件一个重要的功能就是绑定数据,而我们平时用的最多的绑定DataTable。但是除了DataTable之外还有一些其他数据格式也是可以绑定的!这篇博客就以Repeater为例,介绍三种绑定其他数据的方式。
1. Repeater绑定数组和ArrayList
前台代码
<body>
<form id="form1" runat="server">
<%--1.Repeater绑定数组--%>
<asp:Repeater ID="rptarry" runat="server" >
<HeaderTemplate><table></HeaderTemplate>
<%--Repeater绑定数组前台代码绑定方式:<%# GetDataItem()%>--%>
<ItemTemplate>
<tr><td> <%# GetDataItem()%> </td></tr>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater>
<%--2.Repeater绑定ArrayList--%>
<asp:Repeater ID="rptarryList" runat="server">
<HeaderTemplate><table></HeaderTemplate>
<%--Repeater绑定ArrayList前台代码绑定方式:<%# GetDataItem()%>--%>
<ItemTemplate>
<tr><td> <%# GetDataItem()%> </td></tr>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater>
</form>
</body>
后台代码
using System.Collections;//使用ArrayList添加的引用
namespace ArrayList测试
{
public partial class Repeater绑定ArrayList : System.Web.UI.Page
{
protected void Page_Load ( object sender, EventArgs e )
{
//调用绑定数组的函数
bindrptarry ( );
//调用绑定ArrayList的函数
bindrptarryList ( );
}
//第一个函数:绑定数组
public void bindrptarry ( )
{
//1.定义一个字符串
string strs = "li|wen|yuan";
//2.按照 | 标记将字符串分为三个字符串并赋值给str数组
string[] str = strs.Split ( '|' );
//3.Repeater绑定数组
rptarry.DataSource = str;
rptarry.DataBind ( );
}
//第二个函数:绑定ArrayList
public void bindrptarryList ( )
{
//Repeater绑定数组ArrayList
//调用arrayList函数获得ArrayList
rptarry.DataSource = arrayList ( );
rptarry.DataBind ( );
}
//第三个函数
//将ArrayList中添加一些元素
public ArrayList arrayList ( )
{
//1.创建ArrayList对象
ArrayList aL = new ArrayList ( );
//2.通过Add方法向ArrayList中添加元素
aL.Add ( "liceshi" );
aL.Add ( "wenceshi" );
aL.Add ( "yuanceshi" );
return aL;
}
}
}
2.Repeater绑定ArrayList实体类
前台代码
<body> <form id="form1" runat="server"> 测试Repeater绑定ArrayList实体类 <%--1.添加Repeater控件--%> <asp:Repeater ID="Repeater1" runat="server"> <%--1.1.设置显示的表头--%> <HeaderTemplate> <table style="border:solid 1px #0094ff" > <tr style="border-bottom-style:solid;border:solid 1px black"> <%--表头分别是:学号 姓名 性别--%> <td ><b>学号 </b></td> <td ><b> 姓名 </b></td> <td ><b> 性别 </b></td> </tr> </HeaderTemplate> <%--1.2.设置单元格中显示的具体数据--%> <ItemTemplate> <tr> <%--Repeater绑定ArrayList实体类绑定方式:<%# DataBinder.Eval(Container.DataItem, "属性名") %>--%> <%--学号列显示的数据--%> <td style="text-align:left"> <%# DataBinder.Eval(Container.DataItem, "ShuXing1") %> </td> <%--姓名列显示的数据--%> <td style="text-align:center"> <%# DataBinder.Eval(Container.DataItem, "ShuXing2") %> </td> <%--性别列显示的数据--%> <td style="text-align:center"> <%# DataBinder.Eval(Container.DataItem, "ShuXing3") %> </td> </tr> </tr> </ItemTemplate> <FooterTemplate></table></FooterTemplate> </asp:Repeater> </form> </body>
后台代码
using System.Collections; //使用ArrayList需要添加的引用
namespace ArrayList测试
{
public partial class ArrayList测试 : System.Web.UI.Page
{
protected void Page_Load ( object sender, EventArgs e )
{
if (!IsPostBack)
{
//1.创建ArrayList对象
ArrayList ceshi = new ArrayList ( );
//2.向ArrayList中添加实体类元素
for (int i = 0; i < 2; i++)//外侧循环3次
{
//内部循环的模为4---计算学号
int waiceng = 4 * i;
for (int j = 0; j < 5; j++)//内测循环5次
{
//14=外层循环次数*内层循环次数-1
//quanbu = i + j + 2 * j + waiceng;
//2.1.根据外循环和内循环的模得到学号(要求学号顺序排列 自增1)
int xuehao = i + j + waiceng;
//2.2.每次循环一次就向ArrayList添加下面的元素
Entity yuansu = new Entity ( );
//学号属性的添加
//要求学号是按照顺序排列的
yuansu.ShuXing1 = xuehao.ToString();
//姓名属性的添加
yuansu.ShuXing2 = "姓名"+xuehao ;
//简单的根据奇数偶数来判断性别
if (xuehao % 2 == 0)
{
//当学号是偶数的时候性别是“女”
yuansu.ShuXing3 = "女";
}
else
{
//当学号是奇数的时候性别是“男”
yuansu.ShuXing3 = "男";
}
//2.3.向ArrayList中添加实体类
ceshi.Add ( yuansu);
}
}
//将ArrayList实体类ceshi绑定到Repeater1中
Repeater1.DataSource = ceshi;
Repeater1.DataBind ( );
}
}
}
}
运行结果
3.总结
从上面的代码中可以比较出,不管是绑定数组,ArrayList还是一些其他的数据,区别只在于前台代码的绑定方式。所以其他的数据控件比如DataGridView都是和Repeater相类似的。这样子就可以更加方便的使用ASP.NET中的这些数据控件。