Repeater嵌套时,如何给内层嵌套的Repeater中的一个按钮赋值?

我有两个Repeater(命名为"rptHotel"、"rptRoom")嵌套,里面那个Repeater的一个Button会根据内层Reapter的不同ID值赋不同的Te... 我有两个Repeater(命名为"rptHotel"、"rptRoom")嵌套,里面那个Repeater的一个Button会根据内层Reapter的不同ID值赋不同的Text属性。

protected void rptHotel_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
HotelDataOperate hdo = new HotelDataOperate();
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rpt = e.Item.FindControl("rptRoom") as Repeater;
DataRowView rowv = (DataRowView)e.Item.DataItem;
int typeid = Convert.ToInt32(rowv["id"]);
//Button btn = e.Item.FindControl("rptRoom").FindControl("btnBook") as Button;
//btn.Text = "XXXX"; //这里会有一个if语句给Text属性赋不同值。
rpt.DataSource = hdo.getRoomList(typeid);
rpt.DataBind();
}
}
展开
 我来答
平梦醉神风1I
2011-07-30 · TA获得超过1510个赞
知道小有建树答主
回答量:691
采纳率:0%
帮助的人:1029万
展开全部
直冲芹羡接btn肯定是错的,想一下内层的repeater可能有多项,每项都可能有Button
而且既散拍然要赋值,肯定是在绑定之后,否则值就被首滑覆盖了

protected void rptHotel_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
HotelDataOperate hdo = new HotelDataOperate();
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rpt = e.Item.FindControl("rptRoom") as Repeater;
DataRowView rowv = (DataRowView)e.Item.DataItem;
int typeid = Convert.ToInt32(rowv["id"]);
//Button btn = e.Item.FindControl("rptRoom").FindControl("btnBook") as Button;
//btn.Text = "XXXX"; //这里会有一个if语句给Text属性赋不同值。
rpt.DataSource = hdo.getRoomList(typeid);
rpt.DataBind();

Button btn = null;
foreach (RepeaterItem item in rpt.Items)
{
btn = item.FindControl("btnBook") as Button;

if (btn != null)
{
btn.Text = "xxxx";
}
}
}
}
更多追问追答
追问
大神,是这样的!!!大神,还有问题啊。给btn加上Text属性解决了,给Button加上Click事件怎么办呢?
btn+=EventHandle(btn_Click);然后实作btn_Click(sender,e)事件,这样也根本不执行btn_Click事件诶~~痛苦。求解决~~我今天想这个问题一晚上了%>_<%。
追答
按钮的事件直接在前台写,可以用rptRoom的ItemCommand事件,也可以直接用按钮的Click事件,建议使用按钮的事件操作起来反而容易

类似这样的代码

具体如何操作,自己先想想吧,搞不定再说
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式