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?
答案 0 :(得分:1)
问题是您的控件位于转发器内,查找控件不会递归搜索。试试这个。
rptAdd.FindControl("labelBull").Visible = true;