我正在使用gridview,并且正在使用gridview 中的boundfield 将数据库中的数据显示到其中。
gridview 中的 2 列仅显示YES或NO值。我想将“是”或“否”换成绿色的勾号图像或红色的 X 图像……谁能帮我解决这个问题或为我指出类似的解决方案。我用c#
使用TemplateFields 填充您的gridview
如果字段是 yes,没有值,则将 传递<%# 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;
}
在 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";
}
}
你也可以试试这个
<asp:TemplateField>
<ItemTemplate>
<%= Eval("Field") == "Yes" ? "<img src='tick.png' />" : "<img src='cross.png' />" %>
</ItemTemplate>
</asp:TemplateField>
您可以拥有一个带有 runat="server" 属性的图像,并在 RowDataBound 事件中更改代码隐藏中的 src。
例如 :
<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;
}
在您的代码后面创建一个公共函数,它应该接受字符串类型参数并在您的设计/.aspx 页面上使用该公共函数并检查公共函数,如果是,则返回
<img src='path of your Green tick image' />
否则返回
<img src='path of your red X image' />
但是您将无法在绑定字段上使用此公共功能...您必须为此使用模板字段