我有一个image
控件,其源可以在运行时更新,因为我在其中显示员工的图片,并且这是从数据库加载的:
EmpImage.Src = "data:image/png;base64," + base64String;
并更新记录我需要检查图像源是否为空:
if (EmpImage.Src.Length == 0)
或
if (EmpImage.Src == "")
但它一直显示我是空的......
我读了这个帖子ASP.NET image src question但是这里使用jquery
但我需要服务器端解决方案
修改
我将图像从数据库读取到图像控制为:
if (dt.Rows[0]["Pic"] != DBNull.Value)
{
byte[] bytes = (byte[])dt.Rows[0]["Pic"];
string base64String = Convert.ToBase64String(bytes, 0, bytes.Length);
// EmpImage.ImageUrl = base64String;
EmpImage.Src = "data:image/png;base64," + base64String;
}
其中dt
是datatable
,我是从谷歌
我需要你的帮助才能摆脱它。
我正在使用asp.net c#
提前感谢。
答案 0 :(得分:2)
服务器端图像控件具有ImageUrl属性,属性为String
,因此您可以直接使用字符串函数: -
if (String.IsNullOrEmpty(EmpImage.ImageUrl)
{
}
<强>更新强>
根据您发布的异常,确定您没有使用ASP.NET服务器端Image
控件即<asp:Image
,而html image控件使用runat="server"
} 标签。因此,在这种情况下,由于Src属性的类型为String
,因此您可以使用相同的方法: -
if (String.IsNullOrEmpty(EmpImage.Src)
{
}
答案 1 :(得分:1)
而不是Src使用ImageUrl属性
if (dt.Rows[0]["Pic"] != DBNull.Value)
{
byte[] bytes = (byte[])dt.Rows[0]["Pic"];
string base64String = Convert.ToBase64String(bytes, 0, bytes.Length);
// EmpImage.ImageUrl = base64String;
EmpImage.ImageUrl = "data:image/png;base64," + base64String;
}
答案 2 :(得分:0)
据我所知,无论何时动态设置图像源,您都不会在页面发布时获得源长度/信息。你必须使用隐藏的输入管理一些标志。
答案 3 :(得分:0)
将图像对象设置为以下演示文稿:
<强> .aspx的强>
<asp:Image id="test" runat="server" ImageUrl='<%# GetImage(Eval("Pic")) %>' />
<强> CS 强>
public string GetImage(object img)
{
string base64String ="";
if (dt.Rows[0]["Pic"] != DBNull.Value)
{
byte[] bytes = (byte[])dt.Rows[0]["Pic"];
base64String = Convert.ToBase64String(bytes, 0, bytes.Length);
}
return "data:image/png;base64," + base64String ;
}