Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从代码隐藏在Html表中显示二进制图像_C#_Html_Asp.net - Fatal编程技术网

C# 从代码隐藏在Html表中显示二进制图像

C# 从代码隐藏在Html表中显示二进制图像,c#,html,asp.net,C#,Html,Asp.net,我正在创建一个表,它应该从数据库中读取二进制图像并显示在Html表中 我的标记: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title&g

我正在创建一个表,它应该从数据库中读取二进制图像并显示在Html表中

我的标记:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Table Test</title>

    <style type="text/css">
        .small-ad-wrapper{width:215px;height:195px;overflow:hidden;}
        .small-ad-wrapper .portfolio-img-control{width:204px;height:134px;overflow:hidden;margin-bottom:3px;}
    </style>    

</head>
<body>
    <form id="Form1" runat="server">
    <div>
        <br />
        <asp:Button ID="cmdCreate" OnClick="cmdCreate_Click" runat="server" Text="Create" />
        <br />
        <br />
        <asp:Table ID="tbl" runat="server" />
    </div>
    </form>
</body>
</html>
我的代码隐藏:

StringBuilder htmlTable = new StringBuilder();
htmlTable.Append("<table border='1'>");
htmlTable.Append(@"<tr style='background-color:green; color: White;'>
                    <th>Company Name</th>
                </tr>");

int i = 1;
foreach (DataRow row in DT.Rows)
{
    if (i == 1)
    {
        htmlTable.Append("<tr style='color: White;'>");
    }

    htmlTable.Append("<div class='portfolio-img-control'>");

    byte[] bytes = (byte[])(byte[])row["LogoFile"];
    string base64String = Convert.ToBase64String(bytes, 0, bytes.Length);

    System.Web.UI.WebControls.Image imgNew = new System.Web.UI.WebControls.Image();
    imgNew.ImageUrl = "data:image/png;base64," + base64String;

    htmlTable.Append("<td>" + imgNew + "</td>");

    htmlTable.Append("</div");
    if (i == 3)
    {
        htmlTable.Append("</tr>");
        i = 1;
    }
    else
        i = i + 1;
}

htmlTable.Append("</table>");
DBDataPlaceHolder.Controls.Add(new Literal { Text = htmlTable.ToString() });

htmlTable.Append("<tr>");
htmlTable.Append("<td align='center' colspan='4'>There is no Record.</td>");
htmlTable.Append("</tr>");  
但它给我的结果是System.Web.UI.WebControls.Image,根本不显示图像


如何做到这一点?请回复感谢,因为您创建了一个新的asp.net图像控件,并尝试将该对象用作字符串

这些线必须删除

 System.Web.UI.WebControls.Image imgNew = new System.Web.UI.WebControls.Image();
    imgNew.ImageUrl = "data:image/png;base64," + base64String;    
    htmlTable.Append("<td>" + imgNew + "</td>");
如果要将其呈现为字符串,则必须更改为:

htmlTable.AppendFormat("<td><img src=\"data:image/png;base64,{0}\"></td>", base64String);
请注意,我不知道你剩下的代码是否没有bug