如何在asp.net应用程序的服务器端过度控制图像



如何在服务器端超过"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");
// ...
}

最新更新