Repeater使用技巧
来源:互联网 发布:友情 知乎 编辑:程序博客网 时间:2024/06/13 08:20
一、在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 % 2 == 0)
{
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种方法
1、<itemtemplate>
<tr><td>
<%# Container.ItemIndex + 1%>
</td></tr>
</itemtemplate>
2、<itemtemplate>
<tr><td>
<%# this.rpResult.Items.Count + 1%>
</td></tr>
</itemtemplate>
3、在<form></form>中添加<Label ID="dd" ></Label>
<body nload="show()">
<Script. Language="JScript">
function show()
{
var bj = document.all.tags("LABEL");
for (i=0;i<obj.length;i++)
{
document.all["dd"][i].innerHTML=i+1;
}
}
</script>
4、后台实现方法
后台实现方法:
在.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 + 1);
}
}
四、获取每行的指定字段的值
用一个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 }}
笔者测试:通过findcontrol可以找到asp控件和html控件,但是普通的html控件无法获取文本的值,只能改变其状态,所以可以用asp控件来取出指定位置的值。这里的label控件可以显示也可以隐藏,值都在里面。
- Repeater使用技巧
- Repeater 使用小技巧 内部radio 横排
- Repeater中嵌套使用Repeater
- 在Repeater中嵌套使用Repeater
- 在Repeater中嵌套使用Repeater
- repeater 潜逃 repeater ItemDataBound的使用
- 在Repeater中嵌套使用Repeater
- asp.net在Repeater空件中使用Repeater
- 在Repeater中嵌套使用Repeater
- repeater嵌套repeater(不使用DataSet)
- 在Repeater中嵌套使用Repeater
- 在Repeater中嵌套使用Repeater
- 使用Repeater模板一
- 使用Repeater模板 二
- 使用Repeater的Template
- Flex 使用Repeater组件
- Repeater控件的使用
- Repeater控件的使用
- C语言/C++初学问题
- newLISP window7 安装
- thinpad R61e 升级方案,CPU+内存!都要升级-----搞开发的电脑
- “iOS 推送通知”详解:从创建到设置到运行
- 数字签名和数字证书
- Repeater使用技巧
- vc6.0 在用MFC ClassWizard给新建立的类添加成员变量选择category时没有Value选项
- android ESC/POS兼容指令集 蓝牙打印图片和图片叠加水印
- 让ASP.NET虚拟主机也支持子网站
- sqlserver 2005 异地备份数据库
- ThinkPHP学习笔记(四)调试模式与日志记录
- CSDN2009-2012各年度盘点
- Android 断点续传
- QEMU内在:整体架构和线程模型