Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.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# 在ExtJs网格中显示SQL Server数据库中的图像的优雅方式(C)_C#_Database_Image_Extjs_Grid - Fatal编程技术网

C# 在ExtJs网格中显示SQL Server数据库中的图像的优雅方式(C)

C# 在ExtJs网格中显示SQL Server数据库中的图像的优雅方式(C),c#,database,image,extjs,grid,C#,Database,Image,Extjs,Grid,我有一些图标存储在数据库中,我不希望客户端丢失他的图标,这就是为什么我不将它们存储在磁盘上-一些5KB的png不是什么大问题,我需要显示在网格中,用户可以从中删除一个或上传一些其他图标。 通过在服务器上将二进制图像转换为Base64表示形式,我成功地在网格中显示图标,如下所示: JsonHelper的一部分,它从数据表返回ExtJs网格存储Json if (dt.Columns[j].DataType == Type.GetType("System.Byte[]")) { byte[] b

我有一些图标存储在数据库中,我不希望客户端丢失他的图标,这就是为什么我不将它们存储在磁盘上-一些5KB的png不是什么大问题,我需要显示在网格中,用户可以从中删除一个或上传一些其他图标。 通过在服务器上将二进制图像转换为Base64表示形式,我成功地在网格中显示图标,如下所示: JsonHelper的一部分,它从数据表返回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处理程序。示例实现可在以下位置找到:


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

您可以将图像名称保存在应用程序数据库中,并创建一个Get请求表单服务器,以便在您想要显示的位置显示图像

为指向流式处理图像内容的服务器端模板的image xtype提供URL怎么样?将PNG像其他人一样存储在磁盘上并将其签入代码repo怎么样?我在DB中有图像的名称。所以,如果我有100个图像要显示在我的网格中,我将不得不发出100个服务器请求?到目前为止,我只是在JS文件中有一个ExtJs图像组件或带有html的标签。我该怎么办?在本地保存文件,然后只返回图像的物理路径,这样的想法怎么样?