中易网

关于repeater 嵌套、如何获得里面的repeater 中的控件

答案:6  悬赏:60  
解决时间 2021-01-29 06:21
关于repeater 嵌套、如何获得里面的repeater 中的控件
最佳答案
可以用Items属性来遍历行并用FindControl进行寻找,
如下所示:在Repeater的Item Command事件下下遍历:
for(int i=0;i{
CheckBox cb=(CheckBox )repeater1.Items[i].FindControl("CheckBox1");
if(cb.Checked)
{ //相关数据处理 }
}
但是,如果在HeaderTemplate和FooterTemplate模板中的控件就无能为力了,此时我们只能用Controls属性来解决问题。假设页面中有如下一个Repeater控件:
程序代码




'>






下边代码示例寻找Label1和Label3:

程序代码
如何在Repeater的HeaderTemplate和FooterTemplate模板中寻找控件?
在Repeater的ItemTemplate模板中的控件,我们可以用Items属性来遍历行并用FindControl进行寻找,
如下所示:在Repeater的Item Command事件下下遍历:
for(int i=0;i{
CheckBox cb=(CheckBox )repeater1.Items[i].FindControl("CheckBox1");
if(cb.Checked)
{ //相关数据处理 }
}
但是,如果在HeaderTemplate和FooterTemplate模板中的控件就无能为力了,此时我们只能用Controls属性来解决问题。假设页面中有如下一个Repeater控件:
程序代码




'>





下边代码示例寻找Label1和Label3:
程序代码

//在HeaderTemplate中寻找Label1,默认为第0个string s=((Label)Repeater1.Controls[0].FindControl("Label1")).Text;//在FooterTemplate中寻找Label2,默认为最后一个string s=((Label)Repeater1.Controls[Repeater1.Controls.Count - 1].FindControl("Label2")).Text;
全部回答
循环遍历 试试吧
例如获取 repeater 里面的txtgameName文本框的输入内容
string gameName = (this.repeater .FindControl("txtgameName") as TextBox).Text.Trim();
追问:你这个是 repeater 嵌套、获得里面的repeater 中的控件么???
追答:如果是repeater 嵌套repeater 的话,,你要先从第一个repeater 里面获取他的嵌套repeater
追问:这个我晓得,但是获取里面的repeater中的控件我没有办法了、你再看一下我的问题的补充、谢谢
怎么找第一层就怎么找第二层
ri的OnItemDataBound事件里找r2
r2的OnItemDataBound事件里找lblMore
前台页面先给内层repeater加事件:OnItemDataBound="r2_ItemDataBound"
<asp:Repeater runat="server" ID="r1" OnItemDataBound="rptypelist_ItemDataBound">
<ItemTemplate>
<asp:Repeater runat="server" ID="r2" OnItemDataBound="r2_ItemDataBound">
<ItemTemplate>
<asp:Label ID="lblMore" runat="server"></asp:Label>
</ItemTemplate>
</asp:Repeater>
<asp:Label ID="lblMsg" runat="server"></asp:Label>
</ItemTemplate>
</asp:Repeater>
后台代码编写该事件:
protected void r2_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
// 这里找Label
Label lblMore=(Label)e.Item.FindControl("lblMore");
}
追问:试过了,不好使,请问你试过么~~~
追答:不好使是什么意思?
代码没问题 我试过 如果你还不会 建议去看看基础书
repeater既然可以单层嵌套使用 就可以同样方法无限层嵌套使用 原理都是一样的
追问:把你好使的整个代码给我试试~~~
这样用
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
// 这里绑定 Repeater2
Repeater r=(Repeater)e.Item.FindControl("Repeater2");
//r.ItemCommand+=new RepeaterCommandEventHandler(r_ItemCommand);
//r.DataSource=lst;
//r.DataBind();
}
r 就是你需要的。
追问:我要的是r里面的控件 不是r
追答:我给你的代码是 取Repeater1里面嵌套的 Repeater的控件
Repeater r=(Repeater)e.Item.FindControl("Repeater2")
追问:哦 ,我想要 r里面的 Lable 控件,你能获得么 ,r 我自己就可以获得了~~~~~
追答:可以
Label lab=(Label)e.Item.FindControl("你label控件的名字");
代码我直接在这里写的 大小写啥的可能不对,你贴到vs里试一下。
追问:看一下我的问题的补充,谢谢
追答:给r2 也加上 OnItemDataBound 事件 然后在这个事件中进行处理。
处理方式 你已经会了。
追问:事实上,我不会 ,你要是会的话,把你做出来的代码给我看看、谢谢
追答:你给 r2绑定数据的时候 同时加上 OnItemDataBound事件
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
她想说什么尼
2014年12月29号 停运DNF?
澄海市实验学校地址在哪,我要去那里办事
红色高跟鞋配白婚纱好看吗
有谁知道恐怖体感咒怨人物原型
微信电台怎么注册
求助,深圳哪里可以戒酒
听力测试听到什么声音按按健
中国制造的最大客机
跪求:表征这个词是什么意思
松露成熟后会从地下长到地面上么
皇家米兰彩装膜地址在哪,我要去那里办事
我有一辆2000年帕萨特1.8T手自一体的。水温有
求宽容使家庭和睦的事例
小说《东宫》中男主有跟别的女人ooxx吗?男女
推荐资讯
怎样?可以分辨青蛙是公的还是母的。
莱西公交最晚几点
我昨天在酒店请客吃饭,消费了靠1万,最后结
电信宽带到期后要注销没有开户身份证怎么办
1 11 111 1111 11111动一根火柴成为54321
一专多能,我是这样理解:有一项专精的学问和
北京怀柔暑假学HIPHOP街舞,有没有人也去?求
新生婴儿社保怎么办理
宜宾晚上哪里可以打篮球,有灯光球场的?
工伤 上班途中发生的交通事故,假如我负主要
这个装备玩地下城与勇士能完美运行吗?
那电脑上播放爱奇艺视频连接功放机出不出来5.
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?