2013-05-10 63 views
-3

我有一个数据的数组,我从SQL回来,我想添加一个图像(刻度或交叉)到每行的数组取决于给定的结果。我正打算做阵列周围一个foreach和if x==y然后显示图像的其他显示图像B,然后在GridView显示阵列之前添加此到数组以编程方式将图像添加到数组添加到网格视图在c#asp.net

c_gvResults.DataSource = arResults 

任何人都可以点我在正确的方向上我如何在c#asp.net中以编程方式从图像文件夹中获取图像,并根据上述条件在gridview中显示此图像。

感谢

回答

0

你真正需要做的不是将图像添加到数组中,而是将一个URL添加到数组中。然后,您可以使用ImageField或在TemplateField的gridview中使用该URL作为IMG标记的来源。你如何做的一些例子是在this post。如果你不知道如何使用TemplateFields,check this out

如果您不想为数据添加URL字段,要获取条件格式,您的IMG标记可以如下所示。确切的语法可能不正确,但你明白了。 :)

<asp:TemplateField HeaderText="EmpID"> 
    <ItemTemplate> 
     <img src="<%# Eval("whatevercolumn") == "Correct" ? "tick.gif" : "cross.gif" %>"/> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

嗨@Tombala 感谢您的帮助,这似乎正是我想要实现的。我遇到的问题是,我不想从sql查询中获取imageURLstring,我从中获取其他数据,但在其后添加它。我目前在这个阶段,但不知道如何将sTextString添加到我的列表然后传递给gridview。 – user2192142 2013-05-11 17:59:13

+0

string sTextString =“”; foreach(WebApplication.Data.Results.Result result in lResults)) if(result。UserAnswer == result.CorrectAnswer) { sTextString =“..images/tick.png”;其他 { sTextString =“..images/cross.png”; } } c_gvResults.DataSource = lResults.ToArray(); c_gvResults.DataBind(); – user2192142 2013-05-11 17:59:47

+0

@ user2192142你会做什么是使用IMG标记方法,并检查任何列中的值,你想检查一个内联if语句类似于[这篇文章](http://stackoverflow.com/questions/ 10811023/conditional-logic-for-gridview-item-template-using-mark-up-only)has。我用这个例子更新了代码。 – Tombala 2013-05-12 02:14:54

0

我想你想在一列中的<img>元素,而不是实际的图像对象。特别是因为它们是勾号或交叉。只需将文件放在某处,制作相应的字符串,然后将这些字符串放入数组中。

0

这听起来像你只是想在网格视图中显示图像,但不写回数据库本身,所以你应该考虑使用行模板添加沿处理网格视图的RowDataBound事件用于显示图像的自定义列。

在事件处理程序中测试您的表达式,然后根据结果在自定义列中显示适当的图像。

0

如果在您的查询中获得JPG文件的文件名,您可以在ASP页面上添加类似于您的GridView的<Columns> </Columns>标记的东西。

<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> 

问候。

相关问题