2013-05-10 59 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> 

問候。

相關問題