<div class="row">
<asp:Repeater ID="rptrProducts" runat="server" OnItemDataBound="rptrProducts_ItemDataBound">
<ItemTemplate>
<div class="col-sm-4 col-md-4 col-lg-3 ">
<div class="thumbnail" style="background-color:white; width:100%;">
<img src="images/<%# Eval("image")%>" class=" img" style="width:300px; height:300px;" />
<div class="caption">
<div class="hidden">Title: <%#Eval("productsID")%></div>
<div class="ProductName">Title: <%#Eval("name")%></div>
<div class="ProductPrice">Price: £<%# Eval("price")%></div>
<asp:Button ID="addItem" CommandName="addItem" CommandArgument='<%#Eval("productsID")%>' CssClass="btn btn-success btn-sm" runat="server" Visible="false" Text="Add" OnClick="addItem_Click" />
</div>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
我将如何获得对 aspx 文件中按钮的控制权,我想仅在创建会话时将按钮的可见性更改为 true。
由于您已经有 ItemDataBound 事件,因此您可以轻松地在事件中检索 addItem 并将其设置为可见值。
protected void rptrProducts_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
var addItem = e.Item.FindControl("addItem") as Button;
addItem.Visible = Convert.ToBoolean(Session["SomeValue"]);
}
}
您可以编辑按钮的Visible
属性:
-
直接在数据绑定时(
ItemDataBound
事件中的 aspx 或代码隐藏(<asp:Button ... Visible='<%# IsLogged() %>' />
在代码隐藏中:
protected bool IsLogged() { return Session != null && Convert.ToBool(Session["IsLogged"]); }