根据asp.net中的某些值,网格视图中的图片

时间:2014-11-21 13:25:34

标签: asp.net image gridview eval

我的字段状态有三个值: 0 peding 1接受 2拒绝

我想在网格视图中添加它,但是使用图像而不是数字:

if 0  select.png
if 1  ok.png
if 2  no.png

我试过这段代码,但没看到图片:

 <asp:Image ID="Image1" runat="server" ImageUrl='~/img/<%# (Eval("id") == "1") ? "ok.png" : "" ; %>'></asp:Image>   

我该怎么办?以及如何添加三个条件?

2 个答案:

答案 0 :(得分:0)

我认为您可以将图片名称更改为“0.png”,“1. png”和“2.png”等等,因此您可以轻松绑定值,就像

一样
ImageUrl='~/img/<%# (Eval("id") + ".png") 

答案 1 :(得分:0)

您可以通过两种不同的方式执行此操作: -

第一道: - 使用TemplateColumn而不是绑定列,并在其中包含<asp:image>控件。然后将OnRowDataBound事件添加到Grid。

然后根据您的if语句附上您的图片。

GridView_RowDataBound事件

下的示例代码
if (e.Row.RowType == DataControlRowType.DataRow)
   {
       Image i = (Image)e.Row.FindControl("image");
       //include your if statement here, and set ImageUrl
       i.ImageUrl = "select.png";
    }

第二种方式 在模板列下的GridView中添加ImageField

<asp:Image HeaderText='Status' 
        ImageUrl='<%# ImageDisplay(Eval("Status").ToString()) %>' />

然后您需要在代码隐藏中使用以下方法:

protected string ImageDisplay(string status)
{
     ///write you if condition and return image path url
      //return "~\select.png";
}