[英]Image Control in Datagrid ASP.Net
这是我的要求。 我的数据库包含几个字段以及图像数据(以字节为单位)。 现在我有了网页,我可以使用少量过滤器过滤数据,并在网格视图中显示图像和数据。
我写的代码如下,所有其他数据在网页上都显示正常,但对于图像,则显示为空白。 在调试模式下,我验证了它显示了一些字节的图像信息。 我也没有收到任何错误消息。 我很困惑我的代码出了什么问题。
有什么帮助吗? 我的网页的屏幕截图
我的课:
public class Expense
{
public string ID { get; set; }
public DateTime StartTimeStamp { get; set; }
public double ExpenseAmt { get; set; }
public byte[] Photo { get; set; }
}
我的按钮单击事件以及方法:
protected void Button1_Click(object sender, EventArgs e)
{
List<Expense> exps = getSQLData();
GridViewImage.DataSource = exps;
GridViewImage.DataBind();
}
public List<Expense> getSQLData()
{
List<Expense> Expenses = new List<Expense>();
string cs = ConfigurationManager.ConnectionStrings["test"].ConnectionString;
using (SqlConnection conn = new SqlConnection(cs))
{
SqlCommand cmd = new SqlCommand("Select ID, Start_Timestamp, Expense_Amt, Receipt_Photo from EXPENSE where id='testing'", conn);
conn.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Expense exp = new Expense();
exp.ID = rdr[0].ToString();
exp.StartTimeStamp = Convert.ToDateTime(rdr[1].ToString());
exp.ExpenseAmt = Convert.ToDouble(rdr[2].ToString());
exp.Photo = (byte[])rdr[3];
Expenses.Add(exp);
}
}
return Expenses;
}
我的aspx文件中的Gridview代码:
<asp:GridView ID="GridViewImage" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="ID" HeaderText="EnterpriseID" />
<asp:BoundField DataField="StartTimeStamp" HeaderText="StartTimeStamp" />
<asp:BoundField DataField="ExpenseAmt" HeaderText="ExpenseAmt" />
<asp:TemplateField HeaderText="Photo">
<ItemTemplate>
<asp:Image ID="ReceiptImage" runat="server" Height="500px" Width="500px"
ImageUrl ='<%# "data:image/jpg;base64," + Convert.ToBase64String((byte[])Eval("Photo")) %>'>
</asp:Image>
</ItemTemplate>
</asp:TemplateField>
</Columns>
您的模型属性不匹配:
ImageUrl ='<%# "data:image/jpg;base64," + Convert.ToBase64String((byte[])Eval("Photo")) %>'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.