您的位置:首页 > 其它

repeater中嵌套repeater

2010-09-27 10:47 169 查看
本来挺简单的事,自己想复杂了,就参照http://support.microsoft.com/default.aspx?scid=kb;en-us;306154这个弄了个repeater里嵌套repeater的东西来,写博以记之。

第一步,获得数据,得到两个DataTable,放在一个DataSet中

string mySql = "select id,GroupName as gName from GroupTable order by id; select groupid as id, communityName as cName from CommunityTable order by g.groupid; ";
DataSet ds = new DataSet();
DBCommandWrapper cmd = DL.DB.ReadOnly.GetSqlStringCommandWrapper(mySql);
ds = DataLayer.DB.JoinRegionReadOnly.ExecuteDataSet(cmd);
return ds;


通过共同的id,把两个DataTable的数据关联起来,并把第一个DataTable的值绑定到父repeater.

ds.Relations.Add("myRelation", ds.Tables[0].Columns["id"], ds.Tables[1].Columns["id"]);
rptGroup.DataSource = ds.Tables[0];
rptGroup.DataBind();


客户端方面:

子repeater需要设置DataSource,DataSource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("myRelation") %>'

<asp:Repeater ID="rptGroup" runat="server">
<ItemTemplate>
<span style="color:Blue" mce_style="color:Blue"> <%# DataBinder.Eval(Container.DataItem, "gName").ToString() %></span>的地区有:
<asp:Repeater ID="rptRegion" DataSource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("myRelation") %>' runat="server">
<itemtemplate>
<span style="color:Red" mce_style="color:Red"> <%# DataBinder.Eval(Container.DataItem, "[/"cName/"]")%></span>
</itemtemplate>
</asp:Repeater>
<br />
</ItemTemplate>
</asp:Repeater>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: