我正在将VB.NET代码转换为C#。以下代码在C#中不起作用。有人能帮我解决语法问题吗。我尝试了ImageUrl='<%=setImage(#Eval("TPU")) %>‘仍然没有成功。
问题是,它没有在后台代码中调用setImage()函数。我得到以下错误: myPage.setImage(string)的最佳重载方法有一些无效参数。参数‘1’:不能从'object‘转换为'string’
aspx页面
<asp:Image ID="img1" ImageUrl='<%#setImage(Eval("TPU")) %>' runat="server" />C#代码
public string setImage(string status) {
if (status == "Running") {
return "images/run.jpg";
else if (status == "Unknown") {
return "images/unknown.jpg"
}
}谢谢。
发布于 2012-05-10 04:21:09
在第一个条件下,您缺少一个右括号。其次,看起来您甚至不需要else条件。
假设图像路径是正确的,这应该可以很好地工作:
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")) %>'发布于 2012-05-10 04:19:50
试一试
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" />https://stackoverflow.com/questions/10523458
复制相似问题