0

我正在将 VB.NET 代码转换为 C#。以下代码在 C# 中不起作用。有人可以帮助语法。我试过 ImageUrl='<%=setImage(#Eval("TPU")) %>' 仍然没有运气。

问题是,它没有在后面的代码中调用 setImage() 函数。我收到以下错误: myPage.setImage(string) 的最佳重载方法有一些无效参数。参数“1”:不能从“对象”转换为“字符串”

页面

<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"
 }
}

谢谢。

4

2 回答 2

2

You're missing a closing bracket on the first condition. Secondly, it doesn't look like you even need the else condition.

This should work fine, assuming that the image paths are correct:

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"; 
}

EDIT

Also, you need to cast the value as a string in your markup:

ImageUrl='<%# setImage((string)Eval("TPU")) %>'
于 2012-05-09T20:21:08.817 回答
1

Try

public string setImage(string status) 
{   
string imgurl=(status == "Running")?"~//images//run.jpg":"~//images/unknown.jpg";
return imgurl;
}


Updated

<asp:Image ID="img1" ImageUrl='<%#setImage(Eval("TPU").ToString()) %>' runat="server" />
于 2012-05-09T20:19:49.613 回答