repeater中嵌套repeater

参考自: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中;


电脑端效果图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,544评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,644评论 18 399
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 12,360评论 6 13
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 178,962评论 25 709
  • 开心一笑 【向美术教师交作业时,一位学生之交了一张白纸.老师问:"画呢?"学生答:"这呀!"他指着白纸说.老师:"...
    架构师启示录阅读 3,907评论 2 8

友情链接更多精彩内容