[英]how to access label control in repeater for perticular row
我必須在中繼器中將標簽可見性設置為true或false。 我必須在linkbutton的onclick事件上訪問該標簽。 標簽和鏈接按鈕都在中繼器中。 因此,當我單擊“隱藏鏈接”按鈕時,我必須隱藏標簽,而在單擊“顯示”時,我必須顯示。但是我沒有獲得該垂直標簽的控制權。 linkbutton的onclick事件僅應更改垂直行。
protected void lnkshow_onclick(object sender, EventArgs e)
{
LinkButton lnkshow = (LinkButton)sender;
//RepeaterItemCollection rc = rList.Items;
int intSOid=Convert.ToInt32(lnkshow.CommandArgument);
// update flag into database as hide or show
string flag = ARIData.updateIntoInvoiceItemsTable(intSOid);
if (flag == "Y")
{
lnkshow.Text = "Show";
}
else
{
lnkshow.Text = "Hide";
}
RepeaterItemCollection rc = rList.Items;
Label lbreakdown = default(Label);
foreach (RepeaterItem Item in rc)
{
lbreakdown = (Label)Item.FindControl("lBreakdown");
if (flag == "Y")
{
lbreakdown.Visible = false;
}
else
{
lbreakdown.Visible = true;
}
}
}
此代碼更改整個行。
您可以將LinkButton
的NamingContainer
LinkButton
轉換為RepeaterItem
,然后就可以使用FindControl
標簽:
LinkButton lnkshow = (LinkButton)sender;
int intSOid = Convert.ToInt32(lnkshow.CommandArgument);
string flag = ARIData.updateIntoInvoiceItemsTable(intSOid);
RepeaterItem item = (RepeaterItem) lnkshow;
Label lbreakdown = (Label) item.FindControl("lbreakdown");
lbreakdown.Visible = flag != "Y"
您最好使用轉發器的Item Command事件。 然后,您可以使用以下代碼從轉發器項目中獲取控件:
int intSOid=Convert.ToInt32(lnkshow.CommandArgument);
// update flag into database as hide or show
string flag = ARIData.updateIntoInvoiceItemsTable(intSOid);
RepeaterItem item = (RepeaterItem)((Control)e.CommandSource).NamingContainer;
LinkButton lnkshow = (LinkButton)item.FindControl("lnkshow");
Label lbreakdown = (Label)item.FindControl("lBreakdown");
lnkshow.Text = flag == "Y" ? "Show" : "Hide";
lbreakdown.Visible = flag != "Y";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.