Repeater使用技巧
一、在ItemDataBound事件里面动态改变Repeater控件里面的html元素
如:
<asp:Repeater ID="Repeater1" runat="server"
onitemdatabound="Repeater1_ItemDataBound">
<ItemTemplate>
<table>
<tr id="row" runat="server">
<td>
<%#DataBinder.Eval(Container.DataItem,"title")%>
</td>
</tr>
<tr id="row2" runat="server">
<td>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
后台程序
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
int i = e.Item.ItemIndex;
if (i % == )
{
HtmlTableRow row = (HtmlTableRow)e.Item.FindControl("row");
if (row != null)
{
row.BgColor = System.Drawing.Color.Black.ToString();
}
}
HtmlTableRow row2 = (HtmlTableRow)e.Item.FindControl("row2");
if (row2 != null)
{
//在这里就可以对row2这个html的元素进行各种各样的赋值了
}
}
二、在Repeater控件里面嵌套Repeater控件
<asp:Repeater runat="server" ID="rp1" OnItemDataBound="rp1_ItemDataBound">
<ItemTemplate>
<tr>
<td >
<%#DataBinder.Eval(Container.DataItem,"title")%>
</td>
</tr>
<tr>
<td>
<div >
<asp:Repeater runat="server" ID="rp1">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem,"title2")%>
</ItemTemplate>
</asp:Repeater>
</div>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
CS代码
private void Bind()
{ ……
this.rptypelist.DataSource = dt;
this.rptypelist.DataBind();
}
protected void rp1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
//判断里层repeater处于外层repeater的哪个位置( AlternatingItemTemplate,FooterTemplate,HeaderTemplate,,ItemTemplate,SeparatorTemplate)
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rep = e.Item.FindControl("rp2") as Repeater;//找到里层的repeater对象
DataRowView rowv = (DataRowView)e.Item.DataItem;//找到外层Repeater关联的数据项
int title= Convert.ToInt32(rowv["title"]);
……
rep.DataSource = dt2;
rep.DataBind();
}
}
三、添加序号的4种方法
、<itemtemplate>
<tr><td>
<%# Container.ItemIndex + %>
</td></tr>
</itemtemplate>
、<itemtemplate>
<tr><td>
<%# this.rpResult.Items.Count + %>
</td></tr>
</itemtemplate>
、在<form></form>中添加<Label ID="dd" ></Label>
<body nload="show()">
<Script. Language="JScript">
function show()
{
var bj = document.all.tags("LABEL");
for (i=;i<obj.length;i++)
{
document.all["dd"][i].innerHTML=i+;
}
}
</script>
、后台实现方法
后台实现方法:
在.aspx里添加<asp:Label id="Label1" Runat="server"></asp:Label>
在.cs里添加
** void InitializeComponent()
{
this.Repeater1.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.Repeater1_ItemDataBound);
this.Load += new System.EventHandler(this.Page_Load);
}
** void Repeater1_ItemDataBound(object source, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
((Label)e.Item.FindControl("Label1")).Text = Convert.ToString(e.Item.ItemIndex + );
}
}
四、获取每行的指定字段的值
用一个Label 控件来保存id 值,然后在后台可以通过获取这个Label来获取id
例如:
<asp:repeater runat="server" id="rpList" OnItemDataBound="Repeater1_ItemDataBound">
<ItemTemplate>
<tr>
<td >
<asp:Label ID="lblPID" runat="server" Text="<%#Eval("id")%>" ></asp:Label>
</td>
</tr>
</ItemTemplate>
</asp:repeater>
cs文件里:
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
foreach (RepeaterItem re in Repeater1.Items)
{
Label l = re.FindControl("lblPID") as Label; //这里写你的Label的ID
}
}
Repeater使用技巧的更多相关文章
- 数据绑定控件之Repeater
引言 前几篇的文章在说AJAX的内容,利用AJAX技术能够开发出高效运行的网站应用程序,不过在进行B/S项目开发时只拥有AJAX技术是远远不够的,踏入到B/S要学的东西会更多,但相较C/S的复杂逻辑结 ...
- [.NET]Repeater控件使用技巧
1.控制Repeater表格中的按钮显隐 1.1 定义方法 public void Repeater1_ItemDataBinding(object sender, RepeaterItemEvent ...
- GridView,Repeater增加自动序号列
有三种实现的方式, 第一种方式,直接在Aspx页面GridView模板列中.这种的缺点是到第二页分页时又重新开始了. <Columns> <asp:TemplateField Hea ...
- 分享几个asp.net开发中的小技巧
下面这几个,是在实际开发或阅读中发现的一些问题,有些甚至是有很多年开发人员写出的代码,也是很多人经常犯的错误.各位可以看看,你有没有躺着中枪. 第一个,对整型变量进行非null判断. // a 是in ...
- 教你50招提升ASP.NET性能(二十):7条便利的ViewState技巧
(32)Seven handy ViewState tips 招数32: 7条便利的ViewState技巧 Every time I have to deal with a classic ASP.N ...
- Repeater实例应用
在实际开发过程中,涉及到数据绑定,分页,以及一对多展示数据时,遇到这样的需求我们怎么解决呢?下面以帖子展示来逐一说明. 帖子主要由两部分组成,第一部分是发帖人的原创内容部分,第二部分是用户评论部分,这 ...
- Asp.net性能优化技巧
[摘 要] 我只是提供我几个我认为有助于提高写高性能的asp.net应用程序的技巧,本文提到的提高asp.net性能的技巧只是一个起步,更多的信息请参考<Improving ASP.NET Pe ...
- Repeater隔行变色,两个方式
<table> <tr> <td>用户编号</td> </tr> <asp:Repeater ID="rptUser&quo ...
- asp.net提高程序性能的技巧(一)
[摘 要] 我只是提供我几个我认为有助于提高写高性能的asp.net应用程序的技巧,本文提到的提高asp.net性能的技巧只是一个起步,更多的信息请参考<Improving ASP.NET Pe ...
随机推荐
- ubuntu 14.04 (desktop amd 64) 查看配置参数
硬盘型号 sudo hdparm -i /dev/sda |grep "Model" 硬盘数量大小 sudo fdisk -l |grep "Disk /dev/sd ...
- 一次完整的HTTP事务是怎样一个过程
当我们在浏览器的地址栏输入 www.linux178.com,然后回车,回车这一瞬间到看到页面到底发生了什么呢? 以下过程仅是个人理解: 域名解析 --> 发起TCP的3次握手 --> 建 ...
- CAP原则和BASE理论
CAP原则 CAP原则又称CAP定理,是一个经典的分布式系统理论.CAP理论告诉我们:一个分布式系统不可能同时满足一致性(C:Consistency).可用性(A:Availability)和分区容错 ...
- 【Python】模块学习之matplotlib柱状图、饼状图、动态图及解决中文显示问题
前言 众所周知,通过数据绘图,我们可以将枯燥的数字转换成容易被人们接受的图表,从而让人留下更加深刻的印象.而大多数编程语言都有自己的绘图工具,matplotlib就是基于Python的绘图工具包,使用 ...
- vscode的keybindings.json 和 AHK 脚本映射Win键
vscodehotkey.ahk https://github.com/m2nlight/AHKVSCodeLikeMac ; Shortcuts like mac ; Written by Bob ...
- Integer与int的种种比较你知道多少
如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null. 但是如果面试官再问一下Integer i = 1 ...
- 转载 Linux top命令详解
TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况. TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止 ...
- PHP:第五章——字符串加密及校验函数
<?php header("Content-Type:text/html;charset=utf-8"); //1.md5——计算字符中的散列值 //对一段信息(Messag ...
- bzoj1077
题解 这道题n的范围很小,所以我们可以考虑枚举+判定 设放在天平右边的是C,D. 以A+B<C+D为例,因为差分约束必须是差的形式,所以我们将式子变形 B−C<D−A然后枚举D,A的取值, ...
- ubuntu16.04 tensorflow pip 方式安装
首先,需要知道 tensorflow 1.5版本以上包括 1.5版本 的GPU类型都是需要安装 cuda9.0的, tensorflow-gpu 1.4版本是可以使用cuda 8.0. ...