方式一

在aspx页面,写好需要循环输出的内容,一般包含用户自定义控件、服务器控件、Html格式的片段、和这种方式来动态显示获取到得数据列表:

">

class="">

在cs文件,是用GetProductImageList方法来获取List类型的数据列表,并绑定在Repeater控件上面:

上面的不包含用户自定义控件、服务器控件,所以不需要ItemDataBound事件来对单个的数据项进行个性化的赋值

protected override void BindDataSource()

{

this.rpImage.DataSource = GetProductImageList();

this.rpImage.DataBind();

}

方式二

在aspx页面,这次包含了用户自定义控件,所以需要用到ItemDataBound事件来对列表中的每一个用户自定义控件进行个性化的赋值,用户自定义控件可以有公用的方法或者属性,

让我们在ItemDataBound事件中赋值:

在cs文件,用户自定义控件可以有公用的方法或者属性,让我们在ItemDataBound事件中赋值:

protected override void BindDataSource()

{

this.gvItemList.DataSource = productList;

this.gvItemList.DataBind();

}

protected override void OnInit(EventArgs e)

{

this.gvItemList.ItemDataBound += new RepeaterItemEventHandler(this.OnItemListDataBound);

base.OnInit(e);

}

private void OnItemListDataBound(object sender, RepeaterItemEventArgs e)

{

ProductCellInfo productItem = (ProductCellInfo)e.Item.DataItem;

if (productItem != null)

{

ProductFullNameCell productName;

ImageCell image;

ProductControlCell productControlCell;

foreach (Control sub in e.Item.Controls)

{

productName = sub as ProductFullNameCell;

if (productName != null)

{

productName.InitProductFullName(productItem.Title, productItem.PromotionTitle, DispalyContentLength);

continue;

}

image = sub as ImageCell;

if (image != null)

{

image.InitImageCell2(productItem.ID, productItem.Code, productItem.Name, productItem.ImageUrl, productItem.ImageVersion);

continue;

}

productControlCell = sub as ProductControlCell;

if (productControlCell != null)

{

productControlCell.InitProductControlCell(productItem);

continue;

}

}

}

}

方式三:

在aspx页面,可以显示设置OnItemDataBound属性,就不用像方式二那样,在cs文件中的OnInit方法中动态绑定,代码如下:

在cs文件:

protected override void BindDataSource()

{

base.BindDataSource();

this.rptListCell.DataSource = this.List;

this.rptListCell.DataBind();

}

protected void RptAllOnItemDataBound(object sender, RepeaterItemEventArgs e)

{

CategoryInfo category = (CategoryInfo)e.Item.DataItem;

PlaceHolder pHot = e.Item.FindControl("pHot") as PlaceHolder;

PlaceHolder pNew = e.Item.FindControl("pNew") as PlaceHolder;

Literal lit = e.Item.FindControl("literalValidGiftOption") as Literal;

switch (category.PromotionStatus)

{

case "H":

pHot.Visible = true;

break;

case "N":

pNew.Visible = true;

break;

default:

break;

}

lit.Text = category.Name;

}

repeater控件 php,Repeater控件绑定的三种方式相关推荐

  1. JS绑定事件三种方式

    三种方式 1.在DOM中直接绑定 2.在JS代码中直接绑定 3.使用事件监听函数绑定事件 一.在DOM中直接绑定 也就是直接在html标签中通过 onXXX="" 来绑定.举个例子 ...

  2. html 数据双向绑定,javascript实现数据双向绑定的三种方式小结

    前端数据的双向绑定方法 前端的视图层和数据层有时需要实现双向绑定(two-way-binding),例如mvvm框架,数据驱动视图,视图状态机等,研究了几个目前主流的数据双向绑定框架,总结了下.目前实 ...

  3. 原生JS事件绑定的三种方式

    JavaScript绑定事件的方法 要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定"事件处理函数".所谓事件处理函数,就是处理用户操作的函数,不同的 ...

  4. android 加阴影,Android设置控件阴影的三种方式

    释放双眼,带上耳机,听听看~! 第一种方式:elevation View的大小位置都是通过x,y确定的,而现在有了z轴的概念,而这个z值就是View的高度(elevation),而高度决定了阴影(sh ...

  5. React绑定this的三种方式

    转载自  React绑定this的三种方式 React可以使用React.createClass.ES6 classes.纯函数3种方式构建组件.使用React.createClass会自动绑定每个方 ...

  6. SpringBoot配置绑定的两种方式

    SpringBoot配置绑定的两种方式 演示文件 bean public class Student {private String name;private Integer age;public S ...

  7. java c 事件对比_javacsript绑定事件的三种方式与各自特点

    javacsript绑定事件的三种方式与各自特点 javacsript绑定事件的三种方式与各自特点 点击打开链接 javacsript绑定事件的三种方式与各自特点 feipeng8848 2017-0 ...

  8. Javascript事件绑定的几种方式

    Javascript事件绑定的几种方式 来源:http://www.cnblogs.com/rainman/archive/2009/02/11/1387955.html 上篇文章讲到了事件绑定的3中 ...

  9. JS实现双向绑定的几种方式

    记录JS三种双向绑定 1.第一种是通过Proxy数据代理来达到双向绑定的,这是Vue3更新的双向绑定方式. <!DOCTYPE html> <html lang="en&q ...

最新文章

  1. RecyclerView + SnapHelper实现炫酷ViewPager效果
  2. 百度、头条、网易 Android 等社招面试题目
  3. 【渝粤教育】 国家开放大学2020年春季 1107传感器与测试技术 参考试题
  4. php聊天室禁止提交,phpcms v9禁止提交信息到官网方法详解
  5. Python实现CGI环境
  6. iOS中网络请求的使用(GET请求与POST请求)
  7. HDU 4857 逃生 (反向拓扑排序 容器实现)
  8. 力扣--48旋转图像(中等)
  9. python脚本用类编写_跟老齐学Python之编写类之二方法
  10. Ubuntu 优化、美化(主题、终端)
  11. 串口助手使用16进制发送数据
  12. 应急响应-记一次“完(sang)美(xin)无(bing)缺(kuang)”的SSH口令爆破
  13. ThinkPad 声卡出现未安装任何音频输出设备
  14. 融券余额大增,市场情绪极其悲观
  15. Modelsim软件仿真出错:Modelsim is exiting with code 7.
  16. CST微波工作室学习笔记2 主要特点
  17. JavaScript Reflect 学习笔记
  18. Ubuntu QT 5.9.0 安装
  19. 个总开源License授权
  20. uboot启动流程分析之六

热门文章

  1. 使用xshell登录阿里云
  2. 【标准】:ISO26262
  3. 10 款最适合编程的字体
  4. BaseAdapter的使用与优化
  5. 【2017 4 12 总结】
  6. 相关性分析(清风建模学习笔记)
  7. 【区块链日报】“举证责任在陈伟星不在我”,李笑来跟耿直boy陈伟星“杠上”了?
  8. VS Code C++配置opencv:执行时报错无法定位程序输入点于动态链接库XXX
  9. win7无法安装msi解决办法
  10. sierpinski三角形的维数_谢尔宾斯基(Sierpinski)三角形