- PR -

ASP.net サーバー検証実行後、入力状態により確認ダイアログを表示する方法

投稿者投稿内容
ヒトシ
会議室デビュー日: 2008/01/28
投稿数: 4
投稿日時: 2008-01-28 12:40
お世話になります。ヒトシともうします。

現在ASP.net(VB2005)にてWEBサイトの開発を行っているのですが、
顧客の要望に対する実現方法がわからず、皆様のお知恵を拝借させていただきたく
スレッドを起こさせていただきます。

現在、WEBサイトの取引先マスタメンテナンスの開発を行っているのですが、
先日、客先でのユーザーテストにて、取引先マスタメンテナンスの登録/更新ボタン押下時に、
入力項目の取引先住所と配送先住所がことなる場合のみ、確認ダイアログを表示してほしいという要望をいただきました。

現在、取引先マスターメンテナンスの画面では、CustomValidatorコントロールを利用して、
サーバー側にて検証処理をおこない、その結果により保存・更新処理をおこなうようにしております。
そのため、検証処理をJavaScriptで作成してクライアント側にて検証処理を行い、
入力項目の取引先住所と配送先住所が異なる場合、確認メッセージを表示させようと考えていたのですが、
今回のプロジェクトの方針でJavaScriptは基本的に利用しないということと、
ソースのメンテナンス?が大変になるため、ほかの方法を検討するように上司から
指示がでてしまいました。


長々と書きましたが、教えていただきたいことは以下のとおりです。
1.サーバー側での検証処理実行後、入力状態により確認メッセージを表示することは可能でしょうか?
2.1.が可能な場合の実現方法に関するヒントやサンプルなどを紹介しているHP、または調査すればよいキーワード等


社会人としても、プログラマーとしても未熟なため、いたらないところが
多々あると思いますが、ご指導よろしくお願いいたします。


開発機
WindowsXP Pro
VS2005 SP1(VB.net)
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-01-28 13:09
ダイアログを表示させることが絶対必要であるなら、JavaScriptを使用せずに解決することは不可能です。
画面内に確認メッセージを表示させるということならやりようはあると思いますが。
ヒトシ
会議室デビュー日: 2008/01/28
投稿数: 4
投稿日時: 2008-01-28 13:28
どっとねっとふぁん様、回答ありがとうございます。

すいません、大事なことが書いていなかったです。

ダイアログ表示程度のJavaScriptは使用することができます。
ただ、検証処理などの複雑なものはJavaScriptで記述するのは
認められないと言った状態になります。

画面内に確認メッセージや、確認用のページを表示させるなども
考えたのですが、他の画面と仕様が変わってしまうため、
確認ダイアログの表示を行いたいです。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2008-01-28 13:40
疑問に思ったことは、だいたい検索すると過去に同じような質問があります。

ASP.nteの処理途中でJavaScriptをはさむ - Insider.NET
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=32824&forum=7

ASP.NET-イベントからMessageBoxを表示するには? - Insider.NET
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=3240&forum=7
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2008-01-28 15:05
情報入力

取引先住所と配送先住所が異なりますが登録してよろしいですか?

ハイ

登録

という事をしたいわけですよね?
単に javascript で二つのテキストボックスの内容を比較してダイアログを表示するだけですけど、これも書いたらいけないスクリプトの範疇ですか?

あるいは、CompareValidator にクライアントスクリプトを出力するようにしたら同じようなスクリプトを出力してくれそうですが、これも禁止されている javascript の範疇ですか?(Validator は検証結果をダイアログに表示する事も可能)

_________________
囚人のジレンマな日々
ヒトシ
会議室デビュー日: 2008/01/28
投稿数: 4
投稿日時: 2008-01-28 17:25
burton999様
回答ありがとうございます。

>>疑問に思ったことは、だいたい検索すると過去に同じような質問があります。
申し訳ありません。自分でいろいろと調べたつもりではいたのですが、
検討違いのキーワードを探していたのか、見つけることができませんでした。

教えていただいた、過去ログの方法で実現できそうです。
ありがとうございます。



囚人様
回答ありがとうございます。

当初は以下のような流れを実現したいと考えておりました。

情報入力

サーバー側での検証

取引先住所と配送先住所が異なりますが登録してよろしいですか?

ハイ

登録


「書いたらいけないスクリプトの範疇」についてですが、
明確にルール化されているわけでないため、上司に実現方法案を
提出してみないとわからない状態です。

「CompareValidator にクライアントスクリプトを出力する」方法や
「Validator は検証結果をダイアログに表示する事も可能」などについては
自分の知識不足で、どういった内容か理解できていないため、
一度調査してみたいと思います。
回答、ありがとうございました。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2008-01-28 17:50
TextBox1 と TextBox2 が同じ内容の場合にメッセージボックスを表示する。
コード:
<asp:ValidationSummary Runat="server" EnableClientScript="True" ShowMessageBox="True" ShowSummary="True"/>

<asp:CompareValidator Runat="server" ControlToCompare="TextBox1" 
    ControlToValidate="TextBox2" ErrorMessage="同じですけどいいですか?"
    Operator="NotEqual" Type="String"/>


こんな感じでしょうか。

_________________
囚人のジレンマな日々
ヒトシ
会議室デビュー日: 2008/01/28
投稿数: 4
投稿日時: 2008-01-28 18:41
囚人様
サンプルの提示ありがとうございます。

サンプルを実行したのですが、OKボタンのみのダイアログのため、
今回の用件では利用できなさそうです。
(今回は、YES・NOの確認ダイアログを表示したいため・・・)

ValidationSummaryにこのような機能があるとは知らなかったため、大変勉強になりました。
ありがとうございます。

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