我正在尝试在Repeater中找到一个Label,我正在使用:
protected void lnkbtnEditRecord_Click(object sender, EventArgs e)
{
salesEditPanel.Visible = true;
resultPanel.Visible = false;
zipPanel.Visible = false;
ddlPanel.Visible = false;
topPanel.Visible = false;
Label lblSalesId = (Label)(Repeater2.Items[0].FindControl("lblSalesID"));
DataView dv = FillSalesPersonForm(Convert.ToInt32(lblSalesId.Text));
frmViewSalesPeople.DataSource = dv;
frmViewSalesPeople.DataBind();
}
如果转发器只有一个结果,这很有用,但如果它有多个结果,它只获得列出的第一个项目的id。关于如何解决这个问题的任何想法?
编辑:基本上,返回内容包含用户信息,每个用户信息都是指向另一个页面的链接。因此,当我单击链接时,我想从记录的标签中获取该链接被单击的ID。因此,如果我单击5个记录中的4个,我想要记录4的ID为900,我想让900通过。
谢谢!
答案 0 :(得分:4)
尝试这样的事情:
foreach (RepeaterItem item in rptItems.Items)
{
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
var lbl= (Label)item.FindControl("lblMyLabel");
lbl.Text = "do something to your label";
}
}
答案 1 :(得分:0)
从我所知道的你要做的事情来看,你有两个选择:
1)应修改此代码并将其放在转发器的ItemCommand事件处理程序
中 2)如果此lnkbtnEditRecord是转发器Item中的控件,则传入的sender
对象应该将其父级(或父级的父级等)设为RepeaterItem,它应包含您的lblSalesId控件
无论哪种方式,我们都需要有关该方案的更多信息以及您正在尝试做的事情