0

リピーターでラベルの可視性を true または false に設定する必要があります。リンクボタンの onclick イベントでそのラベルにアクセスする必要があります。label と linkbutton の両方がリピーターにあります。そのため、リンクを非表示ボタンをクリックするとラベルを非表示にする必要があり、表示をクリックすると表示する必要がありますが、その特定のラベルコントロールを取得できませんでした。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;
        }

    }



}

このコードは行全体を変更します。

4

2 に答える 2

0

のを にキャストするNamingContainerと、ラベルに必要なすべてが得られます。LinkButtonRepeaterItemFindControl

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"
于 2013-02-07T11:29:53.990 に答える
0

リピーターの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";
于 2013-02-07T11:32:01.670 に答える