try
<asp:DataList ID="grdprof" runat="server" OnItemDataBound="grdprof_ItemDataBound">
<ItemTemplate>
<div>
<%# Eval("MyColumn") %>
<asp:Image ID="Image4" ImageUrl="Images/File.png" runat="server" />
</div>
</ItemTemplate>
</asp:DataList>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string strnull = null;
DataTable dt = new DataTable();
dt.Columns.Add("MyColumn");
dt.Rows.Add("value");
dt.Rows.Add(strnull);
dt.Rows.Add("value 2");
grdprof.DataSource = dt;
grdprof.DataBind();
}
}
protected void grdprof_ItemDataBound(object sender, DataListItemEventArgs e)
{
var row = e.Item.DataItem as DataRowView;
string value = Convert.ToString( row["MyColumn"]);
if (string.IsNullOrEmpty(value))
(e.Item.FindControl("Image4") as Image).Visible = false;
}