需要帮助使转发器的标签可见并隐藏在代码后面的链接按钮

时间:2010-10-14 10:25:19

标签: c#

aspx页面: -

 <asp:Repeater ID="rptAdd" OnItemCommand="rptAdd_ItemCommand" runat="server">
   <ItemTemplate>

<td>

<asp:LinkButton ID="lnkBill" Text="Make Default" runat="server" Visible="true" CommandName="DefaultBill"></asp:LinkButton>

<asp:Label ID="labelBill" Text="Yes" Visible="false" runat="server"></asp:Label>
</td>

 </ItemTemplate>
</asp:Repeater>

代码背后: -

protected void rptAdd_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
       if (e.CommandName == "DefaultBill")


        {
            Users objBill = new Users();

            objBill.IsDefault = true;

            e.Item.FindControl("labelBill").Visible=true;
            e.Item.FindControl("lnkBill").Visible = false;



        }

    }

在intellisense背后的代码中没有检测到“labelBill”和“lnkBill”..什么可能是错的? 还需要知道......那是你如何在转发器中访问控件?比如使用findControl()......对吧?

[编辑]

更改代码如下......仍然无法正常工作......

        ((Label)e.Item.FindControl("labelBill")).Visible=true;
        ((LinkButton)e.Item.FindControl("lnkBill")).Visible = false;

为什么intellisense不会检测到这两个ID?

1 个答案:

答案 0 :(得分:1)

问题是您的控件位于转发器内,查找控件不会递归搜索。试试这个。

rptAdd.FindControl("labelBull").Visible = true;