gpt4 book ai didi

c# - 在 ExtJs Grid (C#) 中显示来自 SQL Server 数据库的图像的优雅方式

转载 作者:搜寻专家 更新时间:2023-10-30 23:11:33 25 4
gpt4 key购买 nike

我有一些图标存储在数据库中(我不希望客户端丢失他的图标,这就是为什么我不将它们存储在磁盘上的原因 - 一些 5KB png 没什么大不了的)我需要显示在网格中,用户可以从中删除一个或上传其他一些。我设法通过将二进制图像转换为其 Base64 表示(在服务器上)来在网格中显示图标,如下所示:(我的 JsonHelper 的一部分,它从 DataTable 返回 ExtJs 网格存储 Json)

if (dt.Columns[j].DataType == Type.GetType("System.Byte[]"))
{
byte[] byteArray = (Byte[])rows[i][j];
//tempStr is the Json string i am building
tempStr = tempStr.Replace(dt.Columns[j].ToString().ToLower(),
Convert.ToBase64String(byteArray, 0, byteArray.Length));
}

然后,在客户端,我在网格中呈现列图标,如下所示:

renderIcon: function (value)
{
return '<img src="data:image/jpeg;base64,' + value + '" style = "margin-left: 5px; height: 24px; width: 24px;"/>';
}

一切正常,但在我看来这不是一种优雅的方式(例如,如果我想从网格中选择一个图标并将其放入容器中,我必须在该容器中添加一个带有“指向”图像的 html,因为我没有可用于 img xtype 的实际图像)

这可以用更优雅/正确的方式完成吗?我正在使用 ExtJs 4.0.7,SQL Server 2008 和 asp.net。

最佳答案

由于您使用的是 ASP.NET,最简单的方法是创建 ashx 处理程序。可以在 - Display Image using ashx Handler 找到示例实现。

使用 ashx 处理程序,您可以提供图像源中的 URL。

关于c# - 在 ExtJs Grid (C#) 中显示来自 SQL Server 数据库的图像的优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19328661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com