我正在将VB.NET代码转换为C#。以下代码在C#中不起作用。有人可以帮助使用Syntax。我试过ImageUrl ='<%= setImage(#Eval(“TPU”))%>'仍然没有运气。
问题是,它不会在后面的代码中调用setImage()函数。我收到以下错误: myPage.setImage(string)的最佳重载方法有一些无效的参数。 参数'1':无法从'object'转换为'string'
<asp:Image ID="img1" ImageUrl='<%#setImage(Eval("TPU")) %>' runat="server" />
public string setImage(string status) {
if (status == "Running") {
return "images/run.jpg";
else if (status == "Unknown") {
return "images/unknown.jpg"
}
}
感谢。
答案 0 :(得分:2)
你在第一个条件下错过了一个结束括号。其次,看起来你甚至不需要其他条件。
假设图像路径正确,这应该可以正常工作:
public string setImage(string status)
{
//if status is running return the run image
if (status == "Running")
return "images/run.jpg";
//otherwise return the unknown image
return "images/unknown.jpg";
}
修改强>
此外,您需要将值转换为标记中的字符串:
ImageUrl='<%# setImage((string)Eval("TPU")) %>'
答案 1 :(得分:1)
尝试
public string setImage(string status)
{
string imgurl=(status == "Running")?"~//images//run.jpg":"~//images/unknown.jpg";
return imgurl;
}
更新
<asp:Image ID="img1" ImageUrl='<%#setImage(Eval("TPU").ToString()) %>' runat="server" />