2012-04-04 7 views
0

私はASP.Netを学習しています。私はImageURLを動的に作成して、ユーザーがコントロールの上を移動したときにImageURLを変更したいと考えています。私はこれを試してみましたが、それは動作しません:ASP.Net ImageButton.ImageUrl on mouseOver

imgStars.Attributes.Add("onmouseover", "this.src= '~/Images/4Stars.png'") 

私は〜/画像/ 4Stars.pngに分離コードでimgStars.ImageURLを設定した場合、それは動作します。しかし、それはjavascriptで動作しません。

助けてください。私は何時間も自分の答えを探してみましたが、何をすべきか分かりません。

+1

を「〜」使用される特殊文字です*サーバー上のパスの解決。この種のパスはクライアント(スクリプトが実行される場所)では動作しません。ブラウザが理解できるパスをレンダリングする必要があります。 – xanadont

+0

それはトリックでした。私は答えがとても簡単なときにそれが嫌いです。私は '〜/ Images/4Stars.png'を 'Images/4Stars.png'に変更しました。あなたのコメントを答えとして記入する方法がわかりません。あなたが私に知らせるならば。再度ありがとう – yerty

答えて

1

「xanadont」はあなたの答えは正しいと思いますが、すべてのシナリオであなたのソリューションが機能しません。すべての相対ディレクトリは、クライアントが使用可能になることを確実にするために、このコードスニペットを使用:VBで

imgStars.Attributes.Add("onmouseover", "this.src= '" + this.Page.ResolveClientUrl("~/Images/4Stars.png") + "'"); 
+0

あなたの助けをありがとう。しかし、私は "これは"それはそれが未定義であると言ってエラーを取得します。私はC#の代わりにVBでコーディングしています。違いはありますか? – yerty

+0

はい、構文の違いです。 「this」の代わりに「Me」を使用 – RichardB

+0

トリックをしてくれてありがとう – yerty

0

を次のコードを使用する必要がありますチルダ

*imgBtnRegister.Attributes.Add("onmouseover", "this.src='" + Page.ResolveClientUrl("~/Images/Register_2.jpg") + "'") 
     imgBtnRegister.Attributes.Add("onmouseout", "this.src='" + Page.ResolveClientUrl("~/Images/Register_1.jpg") + "'")* 

use *Page.ResolveClientUrl("~/Images/Register_2.jpg")* instead of *this.Page.ResolveClientUrl("~/Images/Register_2.jpg")*