- - PR -
[ASP.NET]SPREADにおけるImageButton押下時の画像変更
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-10-12 16:42
皆様はじめましてm(_ _)m
現在、ASP.NET(言語はVB)で開発をしています。 「SPREAD for .NET」を使って表を表示させようと思っています。 SPREADの「ImageButton」を使ったときに、自分で用意したボタン用の画像を 設定できますよね? そこで質問なのですが、 そのボタンを押したときにボタンの画像を変更したい(ボタンが押された〜ってかんじの画像)のですが、可能でしょうか? とても基礎的なことを聞いていると思うのですが、どうぞ皆様よろしくお願い致します(>_<) | ||||||||
|
投稿日時: 2005-10-12 21:24
基礎的どころか、場合によってはかなり高度なことだと思いますよ。
SPREAD は、インストールしていますが、担当外なのでわかりません。 で、『ボタンが押された〜ってかんじの画像』なのですが、、、 その画像を、どういうときに表示したいですか。Windows XP で、Luna が有効になっていれば、次のようなタイミングで“画像”が切り替わります。 1.ボタンがフォーカスを受けたとき 2.ボタンが押し下げられているとき 3.ボタンが押し下げられた後、離されたとき(Click イベント駆動) で、2の状態からフォーカスを外すと、イベントは発生せずにボタンがあがっており、フォーカスがない状態になります。 もし、ASP.NET で、イベント駆動中のみ画像を変えたいということであれば、「お待ちください画面」の応用になります。 _____________________________________________________________________________ □ Posted by Jitta on 2005/10/12 □ じったのノート □ Microsoft MVP :Visual Developer ASP/ASP.NET Oct.2005-Sept.2006 _________________ | ||||||||
|
投稿日時: 2005-10-13 00:13
返答ありがとうございます!(>_<)
>基礎的どころか、場合によってはかなり高度なことだと思いますよ。 あれからいろいろ試してみたのですが、予想以上に難しいことがわかりました >1.ボタンがフォーカスを受けたとき >2.ボタンが押し下げられているとき >3.ボタンが押し下げられた後、離されたとき(Click イベント駆動) パターンとしては、2か3になると思います。 ButtonをImageButtonではなく、普通のSPREADで用意されているボタンを使用した場合、クリックした際にへこんだカンジになって「ボタンを押している」という雰囲気が 味わえます。 私も、あのような動きにしたいのです^^; そこで、試しにスプレッドン内のボタンをクリックしたときのイベントを拾い、 無理矢理セルのプロパティ(ImageUrl)を変更しようとしたのですがそのプロパティが コード上のどこで設定されているのかも分からず… JavaScriptなら押されたときに画像を変えることはできるのかな?などという手も 考えたりしてます。 (ただ、スプレッドでJavaScriptが使えるかどうかは不明ですが(ーー;) 普通は画像でそんなことしないのですかね^^; | ||||||||
|
投稿日時: 2005-10-13 09:51
ImageButtonを継承したクラスを作成すれば可能なのかもしれません。
| ||||||||
|
投稿日時: 2005-10-13 20:38
返信ありがとうございます!
>ImageButtonを継承したクラスを作成すれば可能なのかもしれません。 私の頭ではもう少しソースをゆっくり見てみないと理解できないので、 まだ試してはいませんがチャレンジしてみたいと思います。 ちなみに、すこし自分でもやってみたのですが ボタンクリックイベントを拾って下のように書くとクリックしたときに画像は入れ替わってくれました。かなり無理やりですが…。 ここでは動的な設定ではなく(3,0)のボタンを変更ってことにしてます。 ----------------------------------------------------------------- Dim btn_CellType As FarPoint.Web.Spread.ButtonCellType = CType(e.SheetView.Cells(3, 0).CellType, FarPoint.Web.Spread.ButtonCellType) btn_CellType.ImageUrl = "c:\\変更後の画像.gif" ----------------------------------------------------------------- こうすると、ボタンを押してそのまま画像は変わりっぱなしです。 惜しいようで惜しくないような(-_-; とりあえず、教えていただいた方法でがんばりたいと思います。 ありがとうございますm(_ _)m | ||||||||
|
投稿日時: 2005-10-14 22:06
結論から言うと、VB.NET ではなく、JavaScript で何とかします。とりあえず、次のようなコードで、何とかなりはします。ただし、onmouse* イベントが、IE 限定だったように思います。
※このコードは、Google で「javascript イメージ 動的 変える」を検索し、6番目の結果として出てきた「イメージチェンジャー(1) - DHTML」と、「とほほのWWW入門」を参考にしました。 あとは、アレンジしてください。 アレンジのポイント: サーバコントロールである ImageButton に、onmouse* というイベントは定義されていませんから、サーバコードにてアトリビュートを追加します。 現状では、最初にボタンを押したときにイメージをロードします。このため、最初に限り、押してからしばらく「×」がでます。イメージを先読みしてキャッシュしておくことで、回避できます。 ボタン上にフォーカスがある状態で、スペースキーを入力しても、ボタンを押したことになります。このことには対応できていません。 ___________________________________________________________________ □ written by Jitta on 2005/10/13 □ Microsoft MVP :Visual Developer ASP/ASP.NET Oct.2004-Sept.2006 _________________ | ||||||||
|
投稿日時: 2005-10-15 00:08
どのブラウザでも共通ですよー。さっきFirefoxで試したところ、うまくいきました。 | ||||||||
1
