0

サーバーから取得した画像を表示するために使用するデータバインドされたグリッドビューがあります。画像を拡大する画像の1つにマウスを合わせると、フライアウトを作成するように設定しようとしています。ただし、データバインドされた行に属性を追加するときに問題が発生しました。現在、コードがあります

e.Row.Cells(2).Attributes.Add("onmouseover", "flyoutimg.ImageUrl=""" + imgstr + """;")

ただし、このコード行により、imgstr (サーバー上の画像の URL を含む) がページの javascript/aspx に渡されないという問題が発生します。ページを起動すると、マウスオーバーを試みることができますが、単に機能しません。

flyout.ImageUrl を独自の文字列に入れて属性に渡そうとしましたが、それも機能しません。これについて私が見つけた唯一の調査は、Attributes.Add がエンコードされたアポストロフィを引用符ではなく、2 年前からのものでした。

助言がありますか?

imgstr = dsMyName.Tables(0).Rows(0).Item("Photo").ToString

サーバーから imgstr をプルし、冗長であると思われる .ToString を実行しています。

4

2 に答える 2

1

次のように、一重引用符で試してください。

e.Row.Cells(2).Attributes.Add("onmouseover", "flyoutimg.ImageUrl='" + imgstr + "';")

これは、.NET がこれをレンダリングすることだと思うからです。

onmouseover="flyoutimg.ImageUrl='XYZ'"

二重引用符があると、それが属性の末尾にあると考えられて混乱し、値が切り捨てられる可能性があります。

于 2012-12-19T13:11:14.120 に答える
0

二重引用符を付けるつもりでしたか?

これを試して:

e.Row.Cells(2).Attributes.Add("onmouseover", "flyoutimg.ImageUrl='" + imgstr + " ';")

正当な HTML である一重引用符を使用したことに注意してください。

またはエスケープしてみてください:

e.Row.Cells(2).Attributes.Add("onmouseover", "flyoutimg.ImageUrl=\"" + imgstr + "\";")
于 2012-12-19T02:14:20.543 に答える