关于repeater 嵌套、如何获得里面的repeater 中的控件
答案:6 悬赏:60
解决时间 2021-01-29 06:21
- 提问者网友:风月客
- 2021-01-29 01:15
关于repeater 嵌套、如何获得里面的repeater 中的控件
最佳答案
- 二级知识专家网友:患得患失的劫
- 2021-01-29 01:24
可以用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的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;
全部回答
- 1楼网友:掌灯师
- 2021-01-29 04:30
循环遍历 试试吧
- 2楼网友:山河有幸埋战骨
- 2021-01-29 03:11
例如获取 repeater 里面的txtgameName文本框的输入内容
string gameName = (this.repeater .FindControl("txtgameName") as TextBox).Text.Trim();
追问:你这个是 repeater 嵌套、获得里面的repeater 中的控件么???
追答:如果是repeater 嵌套repeater 的话,,你要先从第一个repeater 里面获取他的嵌套repeater
追问:这个我晓得,但是获取里面的repeater中的控件我没有办法了、你再看一下我的问题的补充、谢谢
string gameName = (this.repeater .FindControl("txtgameName") as TextBox).Text.Trim();
追问:你这个是 repeater 嵌套、获得里面的repeater 中的控件么???
追答:如果是repeater 嵌套repeater 的话,,你要先从第一个repeater 里面获取他的嵌套repeater
追问:这个我晓得,但是获取里面的repeater中的控件我没有办法了、你再看一下我的问题的补充、谢谢
- 3楼网友:雾月
- 2021-01-29 02:22
怎么找第一层就怎么找第二层
ri的OnItemDataBound事件里找r2
r2的OnItemDataBound事件里找lblMore
ri的OnItemDataBound事件里找r2
r2的OnItemDataBound事件里找lblMore
- 4楼网友:等灯
- 2021-01-29 01:48
前台页面先给内层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既然可以单层嵌套使用 就可以同样方法无限层嵌套使用 原理都是一样的
追问:把你好使的整个代码给我试试~~~
<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既然可以单层嵌套使用 就可以同样方法无限层嵌套使用 原理都是一样的
追问:把你好使的整个代码给我试试~~~
- 5楼网友:由着我着迷
- 2021-01-29 01:36
这样用
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事件
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事件
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |