如何在服务器端超过"imginfo"?请帮忙。如果登录信息不匹配,我必须隐藏图像。
因此,如果某些数据具有特定值,则需要隐藏图像。您可以简单地比较该值,并将隐藏的css
类应用于该元素,如:
首先,在head
元素中添加此css
。
.d-none {
display: none !important;
}
然后用以下标记替换您的图像控件:
<asp:ImageButton runat="server" ID="imgInfo" CssClass='<%# Eval("SomeColumn") == DBNull.Value ? "d-none" : "" %>' ImageUrl="~/Images/info-note.png" tooltip='<%# Eval("user_address").ToString().Trim() %>' style="position: center; top: 3px; padding-right: 3px; padding-left:5px;cursor: help;" />
您可以将SomeColumn
替换为包含要比较的值的数据库列,如果它为null,我只是进行了比较,您也可以进行其他比较。
更新
您可以在比较中添加另一个子句,我们可以使用string.IsNullOrEmpty()
方法来检查varchar
列是否为空。
<asp:ImageButton runat="server" ID="imgInfo" CssClass='<%# Eval("SomeColumn") == DBNull.Value || string.IsNullOrEmpty(Eval("SomeColumn").ToString()) ? "d-none" : "" %>' ImageUrl="~/Images/info-note.png" tooltip='<%# Eval("user_address").ToString().Trim() %>' style="position: center; top: 3px; padding-right: 3px; padding-left:5px;cursor: help;" />
您可以在列表视图的OnItemDataBound函数中访问行级别的控件。
protected void lvLoginDetails_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item is ListViewDataItem)
{
ImageButton imb = (ImageButton)e.Item.FindControl("imgInfo");
// ...
}
}
编辑1
如果你想在其他任何地方访问它,你必须遍历下面的listView项。在尝试访问控件之前,请确保您已绑定了一些数据。
foreach (ListViewItem item in lvLoginDetails.Items)
{
ImageButton imb = (ImageButton)item.FindControl("imgInfo");
// ...
}