asp:Image ImageUrl调用函数

时间:2012-05-09 20:16:07

标签: c# javascript asp.net vb.net-2010

我正在将VB.NET代码转换为C#。以下代码在C#中不起作用。有人可以帮助使用Syntax。我试过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"
 }
}

感谢。

2 个答案:

答案 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" />