0

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

ありがとう。

4

2 に答える 2

2

最初の条件で閉じ括弧がありません。第二に、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-09T20:21:08.817 に答える
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" />
于 2012-05-09T20:19:49.613 に答える