在ASP.Net中显示Base64字符串Gridview
问题描述:
我有使用asp.net显示信息的任务,它需要字符串字段(我很容易实现)以及图像随信息一起显示。我试图在我的GridView中使用图像字段来显示一个图片,这对图片有效,我有一个URL与他们一起去。不过,我一直在试图找出一种方法来显示存储为base64字符串的图像。我尝试过各种方式来尝试和显示图像,例如使用模板字段,试图将图像URL设置为将在html中显示base64的字符串,甚至将base64转换为没有图像的图像似乎工作。现在我正在尝试使用数据表手动添加数据并手动创建行。如果任何人有任何想法如何在图像视图中使用base64字符串,我将不胜感激。在ASP.Net中显示Base64字符串Gridview
这里是我创建的gridview的代码。
<asp:GridView ID="GridView1" HeaderStyle-BackColor="#FF0000" HeaderStyle-ForeColor="White"
runat="server" AutoGenerateColumns="false" enabled="false">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" ItemStyle-Width="30" />
<asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="30" />
<asp:BoundField DataField="Account" HeaderText="Account Number" ItemStyle-Width="30" />
<asp:ImageField DataImageURLField="ImageURL" HeaderText="Image" />
</Columns>
</asp:GridView>
这里是我现在在c#中创建一个条目的c#代码。
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[4] { new DataColumn("Id", typeof(int)),
new DataColumn("Name", typeof(string)),
new DataColumn("Account",typeof(string)),
new DataColumn("ImageURL",typeof(string))});
string URL = "data:image/jpg;base64,";
string encodedString = //base64 string here
URL += encodedString;
dt.Rows.Add(1, "Steve", "************1111", URL);
GridView1.DataSource = dt;
GridView1.DataBind();
答
令人难以置信的是哈克,但它的工作原理:
GridView控件:
<asp:GridView ID="GridView1" HeaderStyle-BackColor="#FF0000" HeaderStyle-ForeColor="White"
DataSource='<%# GetData() %>' runat="server" AutoGenerateColumns="false" enabled="false">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" ItemStyle-Width="30" />
<asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="30" />
<asp:BoundField DataField="Account" HeaderText="Account Number" ItemStyle-Width="30" />
<asp:BoundField DataField="ImageURL" HeaderText="Image" HtmlEncode="false" />
</Columns>
</asp:GridView>
代码隐藏:
public DataTable GetData()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[4] { new DataColumn("Id", typeof(int)),
new DataColumn("Name", typeof(string)),
new DataColumn("Account",typeof(string)),
new DataColumn("ImageURL",typeof(string))});
string URL = "data:image/jpeg;base64,";
string encodedString = ""; // base64-encoded image data goes here
URL += encodedString;
URL = $"<img src=\"{URL}\">";
DataRow dr = dt.NewRow();
dr["ID"] = 1;
dr["Name"] = "Steve";
dr["Account"] = "************1111";
dr["ImageUrl"] = URL;
dt.Rows.Add(dr);
return dt;
}
出于某种原因,当我试图用这样的代码的网址= $“
”;一直给我一个意想不到的字符'$',无效的表达式术语“,和;预期的错误不太清楚为什么,因为我一直在检查,一切似乎是为了我也有问题GridView1不存在当前我尝试在代码中的其他地方显示表格 –
Ramirez77
试试这个:'URL =“
”;' –
谢谢你的工作完美,是啊这是有点hacky,但嘿我一直在抨击我的头反对墙壁了几天才能发现。 – Ramirez77