2011-02-01 22 views
5

私はgridviewを持っていて、テンプレートフィールドの1つがasp image serverタグです。私はこのグリッドビューにイメージを表示したいが、データバインドで取得した値に基づいている。asp GridViewカラムの値に基づいて画像を表示する

したがって、すべての行が異なる値を持つことができ、これらの値に基づいて、私は別のイメージを表示する必要があります。私は、JavaScript関数GetImage()を呼び出して、この関数にdatabindで取得した値を渡そうとしました。しかし、私はこれを動作させることはできません。

<Columns> 
     <asp:TemplateField HeaderText="<%$Resources:LocalizedText,LabelStatus%>"> 
      <ItemTemplate> 
       <asp:Image ID="imgStatus" runat="server" CssClass="label" src="GetImage(<%#Eval(<%# Bind("Status_value") %>) %>)"/> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 

のJavascript機能 -

function GetImage(value) 
{ 
    if (value == 1) 
    { 
     return "../Images/act_green.gif"; 
    } 
    else 
    { 
     return "../Images/act_red.gif"; 
    } 
} 

私はここで間違って何をしているのですか?そして、どうすれば修正できますか?ありがとう

+0

レンダリングされたHTML出力を表示できますか? – msms

答えて

7

あなたが言及していない多くのニーズを持っていない限り、Javascriptを使用する必要はなく、サーバ上のすべてを行うこともできます。以下に画像タグ:

は、あなたのASPを変更

あなたのコードビハインドで
<asp:Image ID="imgStatus" runat="server" CssClass="label" ImageURL='<%# GetImage((int)Eval("Status_Value")) %>' /> 

を、次のように配置します。

public static string GetImage(int value) 
{ 
    if (value == 1) 
    { 
     return "../Images/act_green.gif"; 
    } 
    else 
    { 
     return "../Images/act_red.jpg"; 
    } 
} 

そして、あなたは完了です。

+0

Image serverタグのsrcプロパティにBindまたはEvalを使用できませんでした。あなたの答えに基づいて、代わりにImageURLプロパティを使用し、データソース(コードビハインド)でデータを操作しました。ありがとう。 – pavanred

+0

素晴らしい仕事。あなたがうまく働いてうれしい。 –

1

GetImage機能は実行されません。

参照: IMG SRC tags and JavaScript


サーバー側のコードは、JSを使用せずに、画像へのパスを返すことができます。

+0

うーん、意味があります。しかし、どのように私はこの問題を解決することができますか?どんな助けもありがとうございます。 – pavanred

+0

あなたはJavaScriptを使用せずにそれを行うことができます。 – msms

関連する問題