asp:Image ImageUrl 调用函数

asp:Image ImageUrl calling function

本文关键字:调用 函数 ImageUrl Image asp      更新时间:2023-09-26

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

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

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

谢谢。

第一个条件缺少右括号。其次,看起来你甚至不需要其他条件。

假设图像路径正确,这应该可以正常工作:

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")) %>'

尝试

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