- PR -

Webフォームにクライアントスクリプトをつける

1
投稿者投稿内容
nora
会議室デビュー日: 2002/12/16
投稿数: 13
投稿日時: 2003-02-26 17:54
Webアプリケーションについての質問です。

■やろうとしていること

 Webフォームに(サーバサイドの)ボタンを貼り付け、そのボタンのクライアントサイドのクリックイベントにあるJavaScriptを呼び出すようにしたい。

■現状

 単純に、デザイン画面にWebフォームからButtonを貼り付け、その画面をhtml表示に切り替えて、
<asp:Button id="Button1" runat="server" Text="Button" OnClick = toria()></asp:Button>

と書いてみます。
 ビルドは問題がありませんが、実際に実行すると、

(エラーメッセージ)
コンパイラ エラー メッセージ: BC30456: 'toria' は 'ASP.(ページ名)_aspx' のメンバではありません。

となってしまいます。

まずはrunat="server"なので、「サーバ側」に'toria'がない、と怒られるのはわかるのですが、気持ちとしては、サーバ側での<asp:Button が解釈された「後」に、<button>にクライアントサイドスクリプトが付いて欲しいのですが・・・。

なにか根本的に間違ったところに記述しようとしている、ということでしょうか?
こういうこと自体、しない、のでしょうか・・・。

アドバイスをお願いします。
否かっぺい
常連さん
会議室デビュー日: 2003/02/10
投稿数: 48
投稿日時: 2003-02-26 20:23
Page_Load時に、

Button1.Attributes.Add("onclick", "toria()")

ではダメでしょうか?
べーちゃん
大ベテラン
会議室デビュー日: 2002/07/21
投稿数: 121
投稿日時: 2003-02-27 00:56
<asp:Button id="Button1" runat="server" Text="Button"
OnClick = "javascript: toria();"></asp:Button>

ではないですか?
nora
会議室デビュー日: 2002/12/16
投稿数: 13
投稿日時: 2003-02-27 22:23
引用:

べーちゃんさんの書き込み (2003-02-27 00:56) より:
<asp:Button id="Button1" runat="server" Text="Button"
OnClick = "javascript: toria();"></asp:Button>

ではないですか?



#ご回答ありがとうございます。

べーちゃんさんの方法でいけると思ったのですが、やはり怒られてしまいます。

BC30456: 'javascript' は 'ASP.honya_aspx' のメンバではありません。

否かっぺいさんの方法でやったら、うまくできました。なるほどPage_Load時にコード上で行うんですね。

ただ、動くようになって気づいたのですが、これだとボタンを押した際に、まずクライアントサイドスクリプトが作動して、そのあとpost処理がされてしまうんですよね。

実は質問の発端は、最初クライアントサイドスクリプトがついたボタンを配置していたのですが、そのボタン自体の表示非表示を行いたいというのが出てきたため、ボタンをサーバ部品で置き換えたものの、そのあとスクリプトをどうつけようか・・・というものでした。

最終的には、サーバサイドのPanelコントロールの上に、HTMLコントロールのボタン(Javascriptイベント処理つき)を配置して、最初の表示処理時にPanel自体を表示非表示処理をすることでその上のHTMLコントロールのボタンも表示制御できたので、こうしてすべて解決しました。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)