1

私はここで質問を調べましたが、誰も私の質問に答えていないようです。

そのアイテムの値を示すリストにバインドするように設定されたASP.NETリピーターグリッドがあります。現時点では、変数のテキスト値、つまりOFFが表示されていますが、適切な画像を表示することです。つまり、オフの場合は緑色の画像を表示し、オンの場合は赤色の画像を表示します。

これは私がコードでやろうとしていることですが、aspx.csの代わりにここでやったと思いますか?

<td><%# DataBinder.Eval(Container.DataItem, "Spill") == "OFF" ? %>
<asp:Image runat="server" ImageUrl="~/Images/green.JPG" /> 
<%:%> 
<asp:Image runat="server" ImageUrl="~/Images/red.JPG" /> %>
</td> 

コンパイラは、?の後の'%>'について文句を言っています。そして:の後の'%>'は明らかに私はそれを正しく理解していませんが、他にそれを行う方法を考えることができません。

事前に助けてくれてありがとう

4

2 に答える 2

0

マークアップ:

<asp:Image runat="server" 
   ImageUrl='<%# WhichImage(DataBinder.Eval(Container.DataItem, "Spill")) %>' /> 

コードビハインド:

protected string WhichImage(object spill)
{
    string result = "~/Images/green.JPG";
    string spillResult= (string)spill;
    if(!spillResult.Equals("OFF"))
    {
        result = "~/Images/red.JPG";
    }
    return result;
}
于 2012-04-13T15:07:22.540 に答える
0

前面で1行でそれを行うには、次のようにします。

<asp:Image id="imgSpill" runat="server" ImageUrl='<%# (DataBinder.Eval(Container.DataItem, "Spill") == "OFF" ? "~/images/red.jpg" : "~/images/green.jpg") %>' />

お役に立てれば!幸運を!

于 2012-04-15T00:18:00.160 に答える