我在 Repeater ItemTemplate 中使用 LinkButton ,但如果我的LinkButton为NULL,那么我不想显示此Linkbutton。我可以在页面加载上控制此LinkButton吗?
<asp:Repeater ID="rptSlider" runat="server" >
<ItemTemplate>
<li>
.....
<asp:LinkButton ID="lb_url" PostBackUrl='<%#Eval("button_url") %>' runat="server">Go</asp:LinkButton>
...
</li>
</ItemTemplate>
答案 0 :(得分:1)
在页面加载事件中尝试这种方式
LinkButton linkButton= (LinkButton)Repeater1.Items[0].FindControl("lb_url");
linkButton.Visible = false;
但我建议使用ItemDataBound事件来设置链接按钮的可见性。
protected void repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
var linkButton= e.Item.FindControl("lb_url") as LinkButton;
// set link-button visibility
}
}
答案 1 :(得分:0)
您可以在ItemCommand下检查相同内容。请检查以下代码是否有效。
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
string url=((LinkButton)e.CommandSource).Text;
if (string.IsNullOrEmpty(url))
((LinkButton)e.CommandSource).Visible=false;
else
((LinkButton)e.CommandSource).Visible=true;
}