2012-07-24 100 views
0

我正在使用gridview,並使用gridview中的boundfield將數據從數據庫顯示到它中。ASP.NET Gridvgiew。交換圖像的字符串

gridview中的2列僅顯示YESNO值。我想將YES或NO換成綠色刻度圖片或紅色X圖片......任何人都可以幫我解決這個問題,或者指點我一個類似的解決方案。我使用C#

+0

,你渲染YES和NO請張貼的代碼。答案取決於你是如何做到的。 – oleksii 2012-07-24 09:12:10

回答

1

代碼用於aspx頁面:

<asp:TemplateField HeaderText="Image"> 
     <HeaderStyle BackColor="#FFD653" Width="10%" HorizontalAlign="Center" />        
     <ItemTemplate>       
      <img src='<%#GetImagePath(Eval("databasecolumnvalue").ToString())%>'/> 
     </ItemTemplate> 
     <ItemStyle HorizontalAlign="Center" /> 
    </asp:TemplateField> 

代碼作爲CS文件中使用

public void GetImagePath(object value) 
    { 
    if(!string.IsNullOrEmpty(Convert.ToString(value))) 
     { 
     if(Convert.ToString(value)=="Yes") 
      return "yes image url"; 
     else if(Convert.ToString(value)=="No") 
      return "no image url"; 
     } 
    } 
-1

讓在後面代碼中的公共職能,這應該是接受字符串類型的參數,並使用公共職能設計/ .aspx頁上,並在公共功能檢查,如果它是然後返回

<img src='path of your Green tick image' /> 

否則返回

<img src='path of your red X image' /> 

但你將無法使用上綁定字段這個公共功能...你將不得不使用模板字段爲

1

我們ËTemplateFields來填充gridview

凡領域你有,沒有值,通過<%# Eval("YourValue") %>於返回圖像的,你需要使用

public static string GetImage(string value) 
{ 
    var str = "default image url"; 
    if(!string.IsNullOrEmpty(value)) 
    { 
    if(value=="Yes") 
      str = "yes image url"; 
    else if(value=="No") 
      str = "no image url"; 
    } 
    return str; 
} 
路徑的方法
0

你也可以試試這個

<asp:TemplateField> 
<ItemTemplate> 
    <%= Eval("Field") == "Yes" ? "<img src='tick.png' />" : "<img src='cross.png' />" %> 
</ItemTemplate> 
</asp:TemplateField> 
0

你可以有帶有runat =「server」屬性的圖像,並在你的改變src隱藏代碼,在RowDataBound事件中。

例如:

<ItemTemplate><img id="theImage" runat="server" /></ItemTemplate> 

而在後臺代碼:

Control ctl = e.Row.Cells[0].FindControl("theImage"); 
HtmlControl htmlCtl = ctl as HtmlControl; 

if (htmlCtl != null) 
{ 
    String image = ((DataRowView)e.Row.DataItem)[0] as String == "YES" ? "images/accept.png" : "images/cancel.png"; 
    htmlCtl.Attributes["src"] = image; 
}