一种方法是使用 CSS 将单元格的背景设置为图像,并将价格作为纯文本写入同一单元格(显示渲染输出):
<td class="product"
style="background: url(path-to-image.png) top left no-repeat">
<span class="price">$ 3.22</span>
</td>
这种方法的唯一缺点是必须将单元格显式调整为与图像相同的尺寸,您可能不知道。
另一种选择是<img>
在单元格内使用一个元素,并且仍然使用 a<span>
作为纯文本价格(显示渲染输出):
<td class="product">
<img src="path-to-image.png" alt="..."/>
<span class="price">$ 3.22</span>
</td>
无论哪种方法,您都将使用 CSS 在单元格中定位和设置价格样式:
td.product {
position: relative
}
span.price {
position: absolute;
top : 40px; < whatever works for you
left: 40px; <
}
一个非常简单的带有模板的 GridView 示例
您需要将 GridView 的AutoGenerateColumns
属性设置为 false 并自行处理列创建和模板化。
<asp:GridView ID="products" runat="server"
AutoGenerateColumns="false"
DataKeyNames="productId"
DataSourceID="ObjectDataSource1">
<Columns>
<asp:BoundField DataField="productId" HeaderText="Product ID" />
<asp:TemplateField HeaderText="Whatever ...">
<ItemTemplate>
<img src='<%# DataBinder.Eval(Container.DataItem,"productImageUrl") %>'
alt="..." />
<span class="price">
<%# DataBinder.Eval(Container.DataItem,"productPrice","{0:c}") %>
</span>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="productDesc" HeaderText="Description" />
</Columns>
</asp:GridView>