1

リストボックスとボタンを持つ単一のWebフォームがあります。onmousoverイベントが発生すると、リストボックスが表示されます。ただし、ページの読み込み時に、リストボックスは表示されないはずです。私は次のコードを持っています(背景色の変更を許してください):

Button2.Attributes.Add("onmouseout", 
                       "this.style.backgroundColor='Blue', 
                       ListBox3.style.display ='none'");
Button2.Attributes.Add("onmouseover", 
                       "this.style.backgroundColor='Red',
                       ListBox3.style.display='block'");

このコードは、listbox.visibleがtrueに設定されている場合に機能します。残念ながら、ページが読み込まれると、リストボックスは常に表示されます。これは避けたいことです。リストボックスをvisible=falseに設定すると、上記のコードは機能しません。ポストバックをいじって、if(button = red)、display=blockなどのifステートメントを使用しました。しかし、役に立たない。私はこの時点で立ち往生しています。上記のコードを機能させるために私が行う必要のある追加のことを誰かが知っていますか?私はASP.NETを初めて使用するので、htmlでも何かをしなければならないかどうかわかりません。また、興味深い点の1つは、コードのbackgroundcolor部分が問題なく機能することです。

皆様のご協力に心より感謝申し上げます。

4

2 に答える 2

3

サーバー側コードで Listbox visible="false" を設定すると、リストボックスの HTML はレンダリングされず、クライアントに送信されます。したがって、リストボックスがレンダリングされることを確認する必要がありますが、ページの読み込み時に表示されないように設定する必要があります。

  • リストボックスを非表示にする初期 CSS スタイルを持つ

また

  • クライアントで JavaScript を使用して、DOM がロードされたときに表示されないように設定します。

このディスプレイと可視性の記事もご覧ください。

于 2009-05-05T12:32:33.437 に答える
1

これを非常に簡単に行うには、jQuery JavaScript ライブラリを使用できます。

コードの代わりに、次のようなものがあります。

$('#buttonid').hover(function(){
   $(this).css('background','blue');
   $('#listboxid').hide('fast');
}, function(){
   $(this).css('background','red');
   $('#listboxid').show('fast');
});

ホバーの最初の機能はマウスオーバーで、2 つ目の機能はマウスアウトです。また、表示と非表示をアニメーション化して、見栄えを良くすることもできます。

于 2009-05-05T13:18:35.573 に答える