如何在asp.net gridview中显示动态生成的图像?

时间:2016-08-23 17:41:26

标签: c# asp.net image gridview dynamic

我有一个具有Image属性的类(POCO)。我使用List<>此类的数据作为gridview控件的数据源。大多数属性都是从数据库中获取的。但是,我在后面的代码中动态生成条形码(System.Drawing.Image),并在数据绑定之前使用结果填充POCO中的Image属性。我无法将图像存储在数据库或文件系统中。如何在Gridview控件中显示条形码?当我尝试时,没有任何显示,图像生成404错误。 gridview的代码是:

<asp:GridView runat="server" ID="gvInventoryDetail" CssClass="centerpage" 
    style="width: 700px;" ItemType="DisplayModels.InventoryDetailItem" 
    DataKeyNames="InventoryId" AutoGenerateColumns="False"
    AllowPaging="True" PageSize="11" ShowHeaderWhenEmpty="True">
    <Columns>
       <asp:BoundField HeaderText="Barcode" DataField="Barcode"/>
       <asp:TemplateField HeaderText="Image">
           <ItemTemplate >
               <asp:Image ID="BarcodeImage" runat="server"
                   Height="150px" Width="80px" />
           </ItemTemplate>
       </asp:TemplateField>
       <asp:BoundField HeaderText="Comments" DataField="Comments"/>
       <asp:BoundField HeaderText="Status" DataField="Status"/>
       <asp:BoundField HeaderText="Broken?" DataField="IsBroken"/>
  </Columns>
  <SelectedRowStyle BackColor="#89d8f6" Font-Bold="True"/>
</asp:GridView>

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

使用其他第三方项目生成饼图时,我遇到了类似的问题。

我做的是以下内容:

  1. 将图片标记保留在网格中。
  2. 将图片标记设置为在您的网站中调用ASPX页面,在URL上传递您需要的所有参数以生成条形码图像。
  3. 在新的ASPX中执行以下操作
    • response.clear()
    • 图像的response.binarywrite()。
  4. 如果您浏览该URL,您将在浏览器中看到该图像,这意味着该URL还会在您的网格中的图像标记中显示该图像。