2013-09-23 245 views
0

是否可以在GridView中以AutoGenerateColumns模式顯示圖像?我tryed這一個ASP.Net 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:

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

,但它不工作。

回答

1

我不認爲gridview支持autogeneratecolumns的位圖。另外,我很確定這些圖像不會存儲在您的徽標列中。它看起來只是存儲類型。

一個解決方案是存儲圖像或URL的base64表示,然後手動綁定列。

從這個鏈接(http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.autogeneratecolumns.aspx):

而不是自動讓GridView控件生成 列字段,您可以手動設置 的AutoGenerateColumns屬性設置爲false,然後創建一個自定義的定義列字段 列集合。除了綁定列字段之外,您還可以根據自己的用戶界面顯示按鈕列字段,複選框列字段,命令 字段,超鏈接列字段,圖片字段或列字段 - 定義的模板

可能的解決辦法:https://stackoverflow.com/a/7983647/375304