zoukankan      html  css  js  c++  java
  • 动态合并Repeater控件数据列

    前天Insus.NET实现《动态合并GridView数据行DataRow的列》。今天再玩玩Repeater控件,功能也是动态合并某列栏位。
    Repeater控件跟GridView控件一样集成度高,越是自由与松散的,在合并时,越是不好控制。

    我们在网站上,创建一个网页,拉Repeater控件至网页:



    去.aspx.cs为Repeater控件绑定数据,数据库表格,存储过程,以及连接数据库获取数据,在此不提供。



    浏览效果:


    OK,我们开始实现合并数据列,博文开始有提及,由于Repeater控件与GridVeiw控件有很大不一样,合并方法也没有什么参考可言。但有一点是相同的地方,合并的事件还是有ItemCreated中进行。


    上图中为Repeater控件添加OnItemCreated="RepeaterFruit_ItemCreated"事件,拿掉原ItemTemplate模版内的html,用Literal控件来替代。也就是说,所有数据行均在后台OnItemCreated="RepeaterFruit_ItemCreated"事件中动态产生。

    去.aspx.cs定义两个页面级的变量,参考下图#1部分代码。而#2部分代码块,是从数据源分析出合并列中,每个可合并的字段所占有几行数据,并填充入Dictionary<string,int>集合中。



    下面开始写OnItemCreated事件:


    #1代码行,是从集合中,获取匹配当前数据行合并列有几行可合并。
    #2代码块,如果只有一行,就不必做任何合并动作,原原本本产生一行数据即可。
    #3代码块,如果遇上需要合并的字段,而且是刚第一次产生,需要为合并列添加rowspan属性,并赋值。
    #4代码块,是相同的合并列,不必再动态产生了。

    程序运行之后的效果:


  • 相关阅读:
    poj2352树状数组解决偏序问题
    Python中的输入(input)和输出打印
    Python中的输入(input)和输出打印
    IP协议
    IP协议
    Python中的可迭代Iterable和迭代器Iterator
    Python中的可迭代Iterable和迭代器Iterator
    Python中的变量和数据类型
    Python中的变量和数据类型
    TCP的三次握手和四次挥手和UDP协议
  • 原文地址:https://www.cnblogs.com/insus/p/3240848.html
Copyright © 2011-2022 走看看