美文网首页
repeater中嵌套repeater

repeater中嵌套repeater

作者: BigbyLong | 来源:发表于2017-06-05 20:30 被阅读9次

参考自:asp.net(C#)中Repeater嵌套绑定Repeater

首先外部大框架是一个repeaterA,repeaterA中的每一项又包含一个小的repeaterB,每个repeater中又绑有各自的字段,这些字段来自不同的表,但他们的关键项在同一张表中。

实现思路:

1.实现数据绑定,repeaterA绑定中间表,左连接区域表,将区域表中的字段显示到ItemTemplate的区域名处,repeaterB的关联在repeaterA的rptFollow_ItemDataBound数据绑定方法中进行,获取类型字符串,通过数据库中写的方法将该字符串以“,”为分隔符进行分割(该方法返回一张表),通过表中的id获取类型表中的类型名称,放入一个新建的表中,然后再绑定给repeaterB的数据源;

2.实现取消关注,在repeaterA的rptFollow_ItemCommand方法中进行操作,首先在前端给取消按钮设置CommandName="cancel" CommandArgument='<%#Bind("id") %>',行操作名称为cancel,行操作参数绑定中间表的id,通过CommandArgument可以在该方法中获得关注数据的id,再获得用户id,便可实现删除该条数据,即取消关注的目的。

注:还有一种更简单的方法,不需要创建新表,直接用分隔符切割后的数据表与类型表进行内连接 inner join,便可直接获得repeaterB的数据源,代码再文末。

数据库方法分割后得到的表

中间表:userId为用户的id,AreaId为区域的id,ProductTypesIds为关注的类型的id集合

JXS_UserAreaAuth

区域表:表中是所有的区域,区域Id,区域Name,父级id

Sys_Area

产品类型表:产品类型id,产品类型名称PclassName

View_VipDataProductPClass

前端代码:

前端代码

后台代码:

1.数据绑定

rptFollow_ItemDataBound方法

2.取消关注

rptFollow_ItemCommand方法

备注:

不创建新表,直接 inner join,其他代码都一样,只是红框中的一句代码就可以搞定之前的建立新表,插入数据的骚操作。

简单方法 简单方法的sql 原来方法的sql

数据库中的dbo.Fun_Sys_Common_SplitStr方法:

Fun_Sys_Common_SplitStr方法 使用 使用效果 实现1 实现2

手机端效果图:

手机浏览器端效果图

效果图如下:点击取消时可以将该条数据删除,按钮放在repeaterA中;

电脑端效果图

相关文章

网友评论

      本文标题:repeater中嵌套repeater

      本文链接:https://www.haomeiwen.com/subject/aliifxtx.html