0

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

    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:

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

但它不起作用。

4

1 回答 1

1

我不认为 gridview 支持自动生成列的位图。另外,我很确定图像没有存储在您的徽标列中。看起来它只是存储类型。

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

从这个链接(http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.autogeneratecolumns.aspx):

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

可能的解决方案:https ://stackoverflow.com/a/7983647/375304

于 2013-09-30T14:39:09.047 回答