我有一个从 SQL 返回的数据数组,我想根据给定的结果向数组的每一行添加一个图像(Tick 或 Cross)。我打算在数组周围做一个foreach,if x==y
然后显示图像a,否则显示图像b,然后将它添加到数组中,然后在gridview中显示数组
c_gvResults.DataSource = arResults
谁能指出我如何在 c# asp.net 中以编程方式从图像文件夹中获取图像并根据上述标准在 gridview 中显示的正确方向。
谢谢
我认为您想在列中获取<img>
元素,而不是实际的图像对象。特别是因为它们是刻度线或交叉线。只需将文件放在某处,制作相应的字符串,然后将这些字符串放入数组中。
您真正需要做的不是将图像添加到数组中,而是将 URL 添加到数组中。然后,您可以使用ImageField或使用该 URL 作为模板字段中网格视图中 IMG 标记的来源。这篇文章中有一些关于你如何做到这一点的例子。如果您不知道如何使用 TemplateFields,请查看此内容。
如果您不想在数据中添加 URL 字段,以获取条件格式,您的 IMG 标签可以如下所示。确切的语法可能不正确,但您明白了。:)
<asp:TemplateField HeaderText="EmpID">
<ItemTemplate>
<img src="<%# Eval("whatevercolumn") == "Correct" ? "tick.gif" : "cross.gif" %>"/>
</ItemTemplate>
</asp:TemplateField>
听起来您只想在 Grid View 中显示图像,但不想将其写回 DB 本身,因此您应该考虑处理 Grid View 的 RowDataBound 事件以及使用行模板添加自定义列以显示图像。
在事件处理程序中测试您的表达式,然后根据结果在自定义列中显示适当的图像。
<Columns> </Columns>
如果在您的查询中获得 JPG 文件的文件名,您可能可以在 ASP 页面上的 GridView 标记下添加类似这样的内容。
<asp:ImageField DataImageUrlField="YourJPGFileNameColumn"
DataImageUrlFormatString="~\YourPathWhereTheImageIs\{0}.jpg" >
<ControlStyle Width="100px" />
</asp:ImageField>
“YourJPGFileNameColumn”必须是查询返回的列名,{0} 是查询返回的值所在的位置。
例如,如果您的查询返回如下表:
| ProductID |
-----------
| 1234 |
| 010102 |
| 5678 |
您将像这样编写代码:
<asp:ImageField DataImageUrlField="ProductID"
DataImageUrlFormatString="~\YourPathWhereTheImageIs\{0}.jpg" >
<ControlStyle Width="100px" />
</asp:ImageField>
问候。