回答編集履歴

1

不足部分を追記

2018/08/08 23:11

投稿

mitsu-wan
mitsu-wan

スコア136

test CHANGED
@@ -11,3 +11,45 @@
11
11
 
12
12
 
13
13
  https://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.button.usesubmitbehavior(v=vs.110).aspx
14
+
15
+
16
+
17
+ ---
18
+
19
+ **追記**
20
+
21
+ 回答が部分的であったため補足いたします。
22
+
23
+ 実装方法はいくつも考えられますので、一例として参考にしてください。
24
+
25
+
26
+
27
+ 確認ダイアログの表示をaspx側に移動するため、C#に記述されている以下の2行を削除します。
28
+
29
+ ```C#
30
+
31
+ string scriptText = "return confirm('登録いたします。よろしいですか??')";
32
+
33
+ ClientScript.RegisterOnSubmitStatement(this.GetType(), "ConfirmSubmit", scriptText);
34
+
35
+ ```
36
+
37
+ また、aspxのButton1に以下のように2つのプロパティを追加します。
38
+
39
+ ```aspx
40
+
41
+ UseSubmitBehavior="false"
42
+
43
+ OnClientClick="if(!confirm('登録いたします。よろしいですか??'))return false"
44
+
45
+ ```
46
+
47
+ UseSubmitBehaviorは先の回答のとおり、Button1をsubmitではなくbuttonとして動作させるためのものです。
48
+
49
+ OnClientClickは、C#側で削除した2行に相当する処理をaspx側に移動したものです。
50
+
51
+ ここでif~return falseをしている理由ですが、
52
+
53
+ Button1をsubmitではなくbuttonにしたことにより、ポストバックがhtmlの標準動作ではなくボタンクリック時のjavascriptによって実現されるようになるため、
54
+
55
+ 確認ダイアログをキャンセル時、後続するjavascriptによるポストバック処理もあわせてキャンセルする必要があるためです。