teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記&訂正

2021/01/05 07:20

投稿

退会済みユーザー
answer CHANGED
@@ -6,4 +6,30 @@
6
6
 
7
7
  であれば、以下のようにしたらどうなりますか?
8
8
 
9
- onClientClick="return sleep_time(<%#sleep_time%>);"
9
+ onClientClick="return sleep_time(<%#sleep_time%>);"
10
+
11
+ **【訂正&追記】**
12
+
13
+ **上の回答は間違ってましたので訂正します。**
14
+
15
+ ベストアンサーがついてしまっていますので、上の回答はそのまま残しておきますが、以下のようにしないと期待通りにはならないと思います。(ベストアンサーを付けたということは質問者さんのケースで動いたのかもしれませんが)
16
+
17
+ まず上で回答した onClientClick="return sleep_time(<%#sleep_time%>);" の <%# ... %> というのはデータバインディング式で、そこはコード埋め込み用の <%= ... %> を使うべきでした。
18
+
19
+ しかしながら、<%= ... %> は使えないケースがあって、OnClientClick では無視されてそのまま <%= ... %> という文字列になってしまうということを忘れていました。
20
+
21
+ なので、web.config の appSettings から値を取得してきて、OnClientClick のスクリプトに設定するには、
22
+
23
+ ![イメージ説明](2b2d93956f6e478b1bdaa150b3b1c797.jpeg)
24
+
25
+ コードビハインド .aspx.cs 側で以下のようにします。
26
+
27
+ ![イメージ説明](6721432f41b5d3557483987de9295b3b.jpeg)
28
+
29
+ .aspx 側のコードは以下の通りです。Visual Studio のテンプレートを使って自動生成される About.aspx に赤枠部分のコードを追加しました。質問者さんのスクリプトは動かなかったので書き換えました。
30
+
31
+ ![イメージ説明](11d4de31b8627e5dc41d50d4093e3e03.jpeg)
32
+
33
+ スクリプトの目的は web.config の appSettings に書いた 3000 ミリ秒待ってポストバックするということと理解していますが、上のコードを実行して Button をクリックすると 3 秒後に以下の画像のように alert が表示され、[OK]ボタンをクリックするとポストバックされます。
34
+
35
+ ![![スクリプトの](263e5f2334914860a9ca4384f6658818.jpeg)](530c64d32dcaa27b73d84e2fa7b40ecc.jpeg)

1

訂正

2021/01/05 07:20

投稿

退会済みユーザー
answer CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  それを以下のようにすると期待通りの動きになるのですか?
4
4
 
5
- onClientClick="return sleep_time(parseInt(3000));"
5
+ onClientClick="return sleep_time(3000);"
6
6
 
7
7
  であれば、以下のようにしたらどうなりますか?
8
8
 
9
- onClientClick="return sleep_time(parseInt(<%# sleep_time %>));"
9
+ onClientClick="return sleep_time(<%#sleep_time%>);"