- - PR -
ASP.NETでHTMLコントロールでImageButtonのように画像を表示したい
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-07-26 18:31
お世話になっております。
タイトルの通りですが、ASP.NETでHTMLコントロールで、WebコントロールのImageButtonのように画像を表示したいのです。 (やりたいこととしては、ImageButtonからJavaScriptの実行をしたいのですが、サーバに返さずにクライアント内で直接実行をしたいというものです。) HTMLボタンコントロールでは、ビルドスタイルの設定で背景に画像を設定することは出来るのですが、マシンによって表示されるものとされないものが発生しています。 この現象が発生するマシンのOSやソフトウェアについて一貫した性質は見受けられないのですが、原因または関連ありそうな事をご存知の方がいらっしゃればご教授いただきたいです。 画像のパスは相対パスで指定しています。 | ||||||||
|
投稿日時: 2004-07-26 19:57
onclickで定義済み関数にとばす、ということではなく? <image src="" onclick="do()"> 一度、MSDNのDHTMLあたりを読んでおくと、幸せになれると思いますよ。 MSDN ライブラリ 任意のリリース→Web 開発→Web 開発→Web 開発(全般)→SDK ドキュメント→Internet SDK: プラットフォーム SDK→ダイナミック HTML
ん〜?ブラウザが解釈できるかどうかの違い、だと思いますけど。。。 | ||||||||
|
投稿日時: 2004-07-28 11:12
ご返答ありがとうございます。
事の顛末が抜けてしまっていて誤解を与えてしまったかもしれませんが、 ASPのImageButtonコントロール内のOnClickで定義済み関数に飛ばすようにしていたのですが、それで実行してみると「do()は○○.aspxのメンバではありません。」というコンパイルエラーのメッセージが出てしまっていました。 エラーメッセージからASPのメンバとして定義済み関数を認識してしまうのではないかと判断し、多少いじってみたものの回避作が分からなかったため、HTMLコントロールに切り替えたところ、定義済み関数の呼び出しはうまく行ったのですが、逆に今度はボタンにImageを表示する方法ことができなそうだ、という次第です。 ASPのイメージボタンコントロールはなぜかDisable制御とかもうまく動作しないためHTMLコントロールでJavaScriptで制御したほうが楽チン(というか安心)なのかなあと思っていたのです。 | ||||||||
|
投稿日時: 2004-07-28 11:42
こんにちは。
VS.NETをお使いになってますか? 単純に画像を貼り付けたいだけでしたら、 HTMLボタンを右クリックして「ビルドスタイル」を選択、 スタイルビルダの左側にある「背景」を選択すると幸せになれます。 (当方の環境はVS.NET2003) ちなみに、
「Disable制御とかもうまく動作しない」というのはどういうことでしょう? また、クライアント側でJavaScriptを実行しないように設定されてしまったら 全く動かなくなってしまいますので絶対安心ではないですね。 #追記: 現象が発生しているマシンと、発生しないマシンのOS・ブラウザ・ブラウザの設定等で何か違いはありませんか? その辺りを調べたりこちらに提示して頂ければ、大元の原因が分かるかもしれません。 _________________ 雑談のNUSHI [ メッセージ編集済み 編集者: まゆりん 編集日時 2004-07-28 11:50 ] | ||||||||
|
投稿日時: 2004-07-28 13:14
もしかして、.aspxファイルに直接記入したとか? <asp:ImageButton id="imgButton" onclick="do()"> ?????こんなだっけ? これはコンパイルエラーですよ。インテリセンスが働かないように、ImageButton要素にそんな属性はないからです。なので、ビハインドコード側で追加します。 imgButton.Attributes.Add("onclick", "do()") | ||||||||
|
投稿日時: 2004-07-28 16:56
まゆりんさん、Jittaさん、ご返答ありがとうございます。
>まゆりんさん スレッドの最初の投稿で書いたように、HTMLボタンのビルドスタイルは使用しています。 Disable制御がうまく動作しないというのは、先ほど確認したところ勘違いでした。 ちゃんと制御できています。 勘違いしていた理由は、見た目がDisableっぽくグレイアウトしていなかったためです。 通常のボタンは文字がグレイアウトするので、イメージボタンもそういう感じになるのかと思ったらそうではないんですね。 コンパイルエラーのコードから調べていたら@IT会議室の過去ログに、ほぼ同じものを見つけました。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=3736&forum=7&3 この記事の方は普通のボタンコントロールだったのですが、イメージボタンコントロールのDisable制御をする場合はどうするものなんでしょう。 もしかして画像をDisable用に作って入れ替えたりするんでしょうか?? また、こちらで書かれている2つのアドバイスを実行してみましたが、OnClick = "javascript: do();"では動作せず、Attribute.addを使っても、おそらくJavaScriptをクライアントサイドで実行した後にPostが発生してしまって、PostBackして返ってきた画面では何も起こらない状態になっています。 Jittaさんのご返答はこちらの後者の方法だったのですが、完全にクライアントサイドで、サーバにPostせずにASPコントロールを使うことは出来ないものでしょうか。 | ||||||||
|
投稿日時: 2004-07-28 17:19
もしかして
imgButton.Attributes.Add("OnClick", "do()") と書いてませんか? もしそうであれば imgButton.Attributes.Add("onclick", "do()") で確認してみてください あとイメージボタンのClickイベントに何か設定してあるのであれば 削除しておいたほうがいいですね | ||||||||
|
投稿日時: 2004-07-28 17:39
>ゆうじゅんさん
ありがとうございます。 ご指摘の通り、imgButton.Attributes.Add("OnClick", "do()")と書いておりました。 小文字に直してみましたが、残念ながら変化はありませんでした。 Clickイベントはコードに発生させていません。(ビハインドコードイベントが書かれてなければPost処理が発生しないかな〜というのを期待したんですけど、無理のようでした…) |