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里面也没有这个属性 展开
{
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里面也没有这个属性 展开
1个回答
展开全部
同样,你可以通过控件找到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);
}
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);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询