Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.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# Net GridView显示图像_C#_Asp.net_.net_Gridview_Data Binding - Fatal编程技术网

C# Net GridView显示图像

C# Net GridView显示图像,c#,asp.net,.net,gridview,data-binding,C#,Asp.net,.net,Gridview,Data Binding,是否可以在AutoGenerateColumns模式下在GridView中显示图像?我试过这个 private void LoadEventLog(string servicesName) { var bmp = new Bitmap(32, 32); using (var g = Graphics.FromImage(bmp)) { g.Clear(Color.Purple); }

是否可以在
AutoGenerateColumns
模式下在GridView中显示图像?我试过这个

    private void LoadEventLog(string servicesName)
    {
        var bmp = new Bitmap(32, 32);
        using (var g = Graphics.FromImage(bmp))
        {
            g.Clear(Color.Purple);
        }
        var logs = ServiceHelper.GetEventLogs(servicesName)
            .Select(x => new {x.MachineName, x.TimeGenerated, Category = GetCategory(x.Category), x.Message, Img=bmp })
            .Take(100)
            .ToArray(); //
        ServicesGrid.DataSource = logs;
        ServicesGrid.DataBind();
    }
aspx:



但是它不起作用。

我认为gridview不支持自动生成列的位图。另外,我很确定这些图片并没有存储在你的logo栏中。看起来它只是存储类型

一种解决方案是存储图像或URL的base64表示,然后手动绑定列

从这个链接():

而不是让GridView控件自动生成 列字段,您可以通过设置 AutoGenerateColumns属性设置为false,然后创建自定义 列集合。除了绑定列字段外,还可以 显示按钮列字段、复选框列字段、命令 字段、超链接列字段、图像字段或列字段 基于您自己自定义的模板

可能的解决办法:

<asp:GridView ID="ServicesGrid" OnRowDataBound="ServicesGrid_OnItemDataBound" 
     OnPageIndexChanging="ServicesGrid_OnPageIndexChanging"
     AutoGenerateColumns="true" runat="server" AllowPaging="True" />