使用Repeater控件显示分层数据方法如下:
1.在设计视图中拖入一个Repeater控件,把要显示的数据绑定到页面中,可以用随后代码绑定<%# DataBinder.Eval(Container.DataItem,“要显示的列名“)%>。
2.使用SqlDataAdapter读取所要读取了数据,存于两张表中,为两张表建立关系。
DataSetName .Relation.Add(“关系的名字“,DataSetName.Tables[“父表名“].Columns[“外键在父表中的字段名“],DataSetName.Tables[“子表名“].Columns[“子表中的外键子段名“]);
3.绑定数据库到Repeater控件
RepeaterFather.DataSource=DataSetName;
RepeaterFather.DataBind();
4.在页面上显示分层结果,在页面上Html代码中,在ItemTemplate中手动添加显示子表内容的Repeater控件,注意DataSource属性的设置
<asp:Repeater ID=“ShowChilds“ Runat=“Server“ DataSource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows(“关系名“) %>'>
注意此时DataSouce的属性不能用双引号,要用单引号扩起来,也可以不用引号。
5.在新输入的Repeater中绑定子表数据,绑定的语法和普通的绑定不太一样。
<%# DataBinder.Eval(Container.DataItem,“[/“子表中要显示的列名/“]“)%>
注意此时要显示的列名要用[““]括起来,并且由于前面已经有引号,所以在后面的引好要用转义字符来输出引号/”,于是最终写为[/“/“]。
6.在要显示的aspx页面上引入名字空间System.Data,代码如下
<%@ Import NameSpace=“System.Data“%>
通过以上的代码,可以正常显示嵌套的数据。呈现出树形结构。