質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

3610閲覧

LiteralControlでonclickにjsの引数を設定したい

Qoo

総合スコア1249

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2017/02/06 13:53

お世話になります。
asp.net(c#)でLiteralControlを使ってボタンを生成し、javascriptを実行したいのですが、
引数がうまく設定できず質問させて頂きました。

javascript自体は下記のように単純なものでテストしています

//javascript function test(str) { alert(str); }

テスト1
下記のように引数なしで実行するときちんとアラートは表示されます。
但し引数が空なのでundefinedと表示されます。

LiteralControl btn = new LiteralControl("<input type='button' value='追加' onclick='test();'/>"); div.Controls.Add(btn);

テスト2
下記のように引数をつけて実行するとアラートは表示されませんでした。

LiteralControl btn1 = new LiteralControl("<input type='button' value='追加' onclick='test('aaa');'/>"); div.Controls.Add(btn1);

おかしいと思い、生成されたHTMLを確認したところ下記のようにおかしな形で出力されていました。
<input type="button" value="追加" onclick="test(" aaa');'="">
なぜ、aaaの前に空白が入ってしまうのか理解できないのですが、
正しく引数を設定するにはどうすれば良いでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

引数のクォートにエスケープしたダブルクォート(")を
使用してみてはいかがでしょうか?

LiteralControl btn1 = new LiteralControl("<input type='button' value='追加' onclick='test(\"aaa\");'/>"); div.Controls.Add(btn1);

onclickのクォートとその中の引数のクォートに
同じシングルクォートを使用しているため
おかしくなっているように見えます。

投稿2017/02/06 14:12

_yu_

総合スコア91

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Qoo

2017/02/06 14:22

無事引数付きで実行することができました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問