【发布时间】:2012-02-20 14:37:24
【问题描述】:
我正在创建一个购物网站。我有一个绑定到用于管理任务的 objectdatasource 控件的 gridview。这个网格负责显示 sql server 数据库中的 items 表。每个项目也可能有也可能没有图片。因此,当向管理员显示此网格时,我希望每一行都可以使用相关图像的小缩略图。这是gridview代码:
<asp:GridView ID="gridview1" runat="server"
DataSourceID="objDataSource" DataKeyNames="item_id">
<Columns>
<asp:BoundField DataField="item_category" Visible="false" />
<asp:BoundField HtmlEncode="true" DataField="item_name"
HeaderText="Item Name" />
<asp:BoundField HtmlEncode="true" NullDisplayText="Not Set"
DataField="item_desc" HeaderText="Item Description" />
<asp:TemplateField HeaderText="Item Picture"
ItemStyle-Width="40px" ItemStyle-Height="40px">
<ItemTemplate>
<!-- here should be the image -->
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ButtonType="Button" ShowSelectButton="True"
HeaderText="Selecting" />
</Columns>
</asp:GridView>
在浏览器中显示图像时,我只知道两个选项:
- 在响应流上保存位图。当它呈现给客户端时,它不会在 gridview 内部(正确吗?)。
- 在选择语句后在硬盘上保存位图并在模板内使用图像控件,然后动态分配 ImageUrl 属性。
第二个选项太昂贵了,因为它需要为每个图像(或数据行)在硬盘驱动器上写入和读取。那么我该怎么做呢?有可能吗?
ps: ajax 不是一个选项。
【问题讨论】: