ArrayList/Hashtable绑定DataGrid/DataList/Reapter ?
这些控件是BaseDataList类派生的控件,而数据源DataSource必须是实现了System.Collections.IEnumerable 接口(如 System.Data.DataView、System.Collections.ArrayList 和 System.Collections.Hashtable)的对象。
ArrayList和Hashtable。
前台:
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Label runat="server" Text='<%# Container.DataItem %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
<asp:DataList id="DataList1" runat="server">
<ItemTemplate>
Key:<%# DataBinder.Eval(Container.DataItem,"Key") %>
Value:<%# DataBinder.Eval(Container.DataItem,"Value") %><br>
</ItemTemplate>
</asp:DataList>
后台:
private void Page_Load(object sender, System.EventArgs e)
{
ArrayList al = new ArrayList();
al.Add("我是中国人!!!");
al.Add("我热爱自己的祖国!!!");
DataGrid1.DataSource = al;
DataGrid1.DataBind();
Hashtable ht = new Hashtable();
ht.Add("陈水扁","白痴");
ht.Add("吕秀莲","无赖");
DataList1.DataSource = ht;
DataList1.DataBind();
}
list<person>:
前台:
<table>
<asp:Repeater runat="server" ID="repMonthTotal">
<ItemTemplate>
<tr>
<td>姓名:<%# DataBinder.Eval(Container.DataItem,"name") %></td>
<td>年龄:<%# DataBinder.Eval(Container.DataItem,"age") %></td>
<td>性别:<%# DataBinder.Eval(Container.DataItem,"sex") %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
后台:
List<person> lP = new List<person>();
person p1 = new person();
p1.Name = "xiaoming";
p1.Sex = "nan";
p1.Age = "12";
lP.Add(p1);
person p2 = new person();
p2.Name = "xiaogang";
p2.Sex = "nan";
p2.Age = "11";
lP.Add(p2);
person p3 = new person();
p3.Name = "xiaohong";
p3.Sex = "nv";
p3.Age = "10";
lP.Add(p3);
repMonthTotal.DataSource = lP;
repMonthTotal.DataBind();