我正在使用gridview,并使用gridview中的boundfield将数据从数据库显示到它中。ASP.NET Gridvgiew。交换图像的字符串
gridview中的2列仅显示YES或NO值。我想将YES或NO换成绿色刻度图片或红色X图片......任何人都可以帮我解决这个问题,或者指点我一个类似的解决方案。我使用C#
我正在使用gridview,并使用gridview中的boundfield将数据从数据库显示到它中。ASP.NET Gridvgiew。交换图像的字符串
gridview中的2列仅显示YES或NO值。我想将YES或NO换成绿色刻度图片或红色X图片......任何人都可以帮我解决这个问题,或者指点我一个类似的解决方案。我使用C#
代码用于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";
}
}
让在后面代码中的公共职能,这应该是接受字符串类型的参数,并使用公共职能设计/ .aspx页上,并在公共功能检查,如果它是然后返回
<img src='path of your Green tick image' />
否则返回
<img src='path of your red X image' />
但你将无法使用上绑定字段这个公共功能...你将不得不使用模板字段为
我们Ë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;
}
路径的方法
你也可以试试这个
<asp:TemplateField>
<ItemTemplate>
<%= Eval("Field") == "Yes" ? "<img src='tick.png' />" : "<img src='cross.png' />" %>
</ItemTemplate>
</asp:TemplateField>
你可以有带有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;
}
,你渲染YES和NO请张贴的代码。答案取决于你是如何做到的。 – oleksii 2012-07-24 09:12:10