眼看就要到上班的日子了,希望大家抓住宝贵时间能吃则吃,能乐则乐
咱还是节省网络资源,进入正题。。
说起repeater嵌套,好像从N久就有了,这个例子是前些日子做的,用了三层嵌套实现有,先说下,因为客观需求,并没有考虑到性能上的问题,所以可以看下其中的方法,至于别的可以自己探索下,呵呵。
功能是要实现一个下拉列表,列表顶层是可以动态设置的年份时间段,第二层则是时间段内具体的年份列表,最内层是每年的信息列表,因为时间问题,就直接用三个repeater来实现了此功能了,从外层向内层根据条件进行逐层绑定,具体的实现如下
先看下HTML:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

(其实repeater和平常的控件一样,所以别让心理打败就好,呵呵)
此段HTML很简单,三个repeater,每一层都有标识字段(为了进行FindControl),此方法好像是地球人都知道#24,剩下的都是基本数据绑定了,至于内部样式不必去管。
再看下CS文件:

2



3

4

5

6

7

这个是最外层的年段列表绑定(简单)。
关键在下面这个方法中:

2



3

4

5

6

7



8

9

10

11

12

13

14

15



16

17



18

19

20

21

22

23

24

25



26

27

28

29

30

31

可以看到此方法中用了多个循环,所以效率肯定不是很好。。
看下功能,首先把所有年份信息查询出来~~信息量不算大,呵呵
遍历最外层的repeater,也就是时间段,通过findcontrol找出标题起始时间与终止时间,以及要进行绑定的第二层repeater,通过遍历刚查询出来的所有年份信息来判断是否在此时间段内,若是,则存储在临时的IList year中,直至循环结束,第二层的数据也就绑定出来了~~
在上面第二层的信息已经查询出来,repyear(第二层)的信息也就存在了,对它进行遍历,查询出内部标识具体年份的临时变量year,通过his_c_mana.GetList方法把这一年的所有信息查询出来并绑定在最内层repeater中。
好像绑定完了,呵呵
还是那句,这个功能只存在逻辑,并没有考虑到性能问题。