2012-07-24 28 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; 
}