Repeater控件嵌套 如何取到子控件(rpt2)的值 (在rpt2_ItemDataBound中)

protectedvoidrpt1_ItemDataBound(objectsender,RepeaterItemEventArgse){BLL.Typeblltype=... protected void rpt1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
BLL.Type blltype = new BLL.Type();

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rpt2 = (Repeater)e.Item.FindControl("rpt2");
//找到分类repeater关联的数据项
Model.hotelInfo info = (Model.hotelInfo)e.Item.DataItem;
//提取分类id
int hotelid = info.hotemID;
//根据分类id查询该分类下的产品,并绑定产品repeater
DataSet ds = blltype.GetTypeByHotemid(hotelid);
rpt2.DataSource = ds.Tables[0].DefaultView;
rpt2.DataBind();
}
}

protected void rpt2_ItemCommand(object source, RepeaterCommandEventArgs e)
{
//if (e.CommandName == "imgid")
//{
// string id = ((Label)(rpt2.Items[e.Item.ItemIndex].FindControl("hotelTypeid"))).Text;
// //TextBox t = e.Item.FindControl("hotelTypeid") as TextBox;
// MessageBox.Show(this, id);
//}
这里该如何hotelTypeid取值
}
单个Repeater可以这样进行处理。但是在嵌套的模式下,子Repeater是未声明的?
所以Repeater2(rpt2)是没用的。
无法rpt2.Items[e.Item.ItemIndex].FindControl("hotelTypeid")这样查找。
if (e.RowIndex >=0) e里面也没有这个属性
展开
 我来答
疯狂代码
2008-08-14 · TA获得超过264个赞
知道小有建树答主
回答量:549
采纳率:0%
帮助的人:524万
展开全部
同样,你可以通过控件找到Repeater代码如下:
Repearter rpt= (Repearter )e.Item.FindControl("Repeater的ID")
剩下的一样了

你不是已经知道了吗?注释去掉,剩下的和操作web控件的是一样的
if (e.RowIndex >=0)
{
string id = ((Label)(rpt2.Items[e.Item.ItemIndex].FindControl("hotelTypeid"))).Text;
//TextBox t = e.Item.FindControl("hotelTypeid") as TextBox;
MessageBox.Show(this, id);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式