aspxファイル内でJavaScriptを動かしてみたいのですが、思っていた動きと違うので、
どなたか教えていただければ幸いです。
サーバーサイド側でLinkButtonのDemandLinkButton_Clickのイベントを発生した時のお話ですが、
confirmで確認ダイアログのキャンセルを押下した際に処理を止めたいのですが、
下記のような方法ですと、DemandLinkButton_Clickのイベントが最後まで走ってしまいます。
どなたか教えていただければ幸いです。
test.aspxファイル内のコード <asp:LinkButton ID="DemandLinkButton" runat="server" Text ="申請" OnClick="DemandLinkButton_Click" /> <script type="text/javascript"> function TotalMoneyCheck() { return confirm("金額が違いますが、このまま申請してもよろしいですか?"); } </script> test.aspx.csファイル内のコード ///申請ボタンクリック時処理 protected void DemandLinkButton_Click(object sender, EventArgs e) { if (MoneyTextBox.Text != RecalcMoney()) { // Scriptを登録し、aspx側に記載しているTotalMoneyCheck()関数を呼ぶ ScriptManager.RegisterStartupScript(this, this.GetType(), "TotalMoney", "TotalMoneyCheck();", true); } // 画面遷移 Response.Redirect("https://teratail.com/"); } 補足ですが、ここではMoneyTextBox.Textの値は100とします。 RecalcMoney()の戻り値は200とします。
追加情報(FW/ツールのバージョンなど)
Web Formsを利用し、開発をしています。
【開発環境】
開発環境 VisualStudio2019
言語 C#
何がしたいのかよく分かりません。サーバー側で確認ダイアログを出してどうしたいのでしょうか?
それってサーバーサイド側で動くJS(Node.jsなど)ではなく、
コンパイルされて生成されたHTML上で動くクライアント側のJSの話では?
どう操作したときにどうなったら今回の要件を満たせるのか具体的に記載してください。
Web Forms でクリックをサーバーサイドで検知したいのであれば、とりあえずこれを一通り読んでみてください。
https://atmarkit.itmedia.co.jp/ait/articles/0209/12/news002.html
ご回答ありがとうございます。
クライアント側でJSを書きたくない理由としては、先にサーバー側でチェック処理を行っており、
そのチェック処理が終わってから、確認ダイアログを表示させたいと思っております。
もしクライアント側でサーバー側のチェック処理を呼べるのであればそれが一番良さそうなのですが、良い方法が思い浮かびません。
え?
読んでないのかな?
申し訳ございませんが、内容を大幅に変更させていただきましたので、宜しくお願いします。
現状の課題を具体的に書かせていただきました。
情報を提示しても読まない人に情報を提示するのはちょっと厳しいです。
自分でしようとせず、全部任せられる人を雇うのが良いかもしれません。
申し訳ございません、先に回答をいただいた順に対応しておりますが、現在@ITの記事を読んでいる途中です。

> <asp:LinkButton id="DemandLinkButton" runat="server" onclick="DemandLinkButton_Click;"/>
それコンパイルエラーになりませんか?
>それコンパイルエラーになりませんか?
すみません、修正させていただきましたので、宜しくお願いします。

質問者さん、別の案を回答欄に追記しましたが読んでますか? それに対するフィードバックを返してください。

回答1件
あなたの回答
tips
プレビュー