![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
お世話になります。
フォームビュー上にある DropDownList の選択で、Windowsフォームのような BeforeUpDate イベントがないと思うのですが、
フォームビューであれば、FormViewUpdateEventArgs Cancel = True で更新をキャンセルできるとの事ですが、 DropDownList での BeforeUpDate のような操作はできないのでしょうか?
もしくはまったく違う考えで これらを実現するのでしょうか?
簡単な例で教えていただけないでしょうか?
よろしくお願い申し上げます。
No.1ベストアンサー
- 回答日時:
> フォームビュー上にある DropDownList の選択で、Windowsフォームのよう
> な BeforeUpDate イベントがないと思うのですが、
BeforeUpDate というのは Office VBA のイベントのことだと思いますが、そういうのは ASP.NET にはありません。
全体のシナリオが分かりませんが、フォームビューというのは ASP.NET の FormView で、それに DropDownList を配置して、その AutoPostBack プロパティを ture に設定し、ユーザーが DropDownList の選択を変更したときにポストバックして、DB を UPDATE するというような操作をしているのでしょうか?
であれば、質問に書いてあるように「FormViewUpdateEventArgs Cancel = True で更新をキャンセル」するか、FormView に SqlDataSource のようなデータソースコントロールを組み合わせて使っていれば、その Updating イベントのハンドラで同様のことをしてキャンセルするのが普通です。
FormView.ItemUpdating イベント
http://msdn.microsoft.com/ja-jp/library/system.w …
SqlDataSource.Updating イベント
http://msdn.microsoft.com/ja-jp/library/system.w …
ObjectDataSource.Updating イベント
http://msdn.microsoft.com/ja-jp/library/system.w …
WebSurferさん 大変お世話になっております。
WebSurferさんのご推察どおり、FormViewにropDownLisを配置してAutoPostBackをTrueを設定した上での質問でした。
ただ、問題なのは、FormViewUpdateEventArgs Cancel = True にしても、データソースコントロールのUpdating にしても、全体的な更新をする時に初めて、入力された値がわかり処理ができるので、タイミング的には遅い感じになってしまい、使えないのかなーと思っておりました。 データが連結されているコントロールと非連結のコントロールを使い、ワンクッション置く方法なども考慮に入れ開発したいと思っております。ですが、ご提示いただいたURLはとても今後の参考になりました。ありがとうございました。
No.2
- 回答日時:
難しい話題ですね。
Web ControlのDropDownListには、ItemDataBound(=DataBindの過去分詞形)しかないので、たしかに「データバインドが起きた後」という意味合いしかありません。
(最後にHTMLレンダリングされるまでカタチにならないので、別に前でも後でもいいのですが)
これも、ASP.NETだけの概念で、一般的なWebアプリケーション・フレームワークには、「データバインドがイベントになる」という考え方すらありません。
で、標準のDropDownListではなく、ComponentOneのようなASP.NET用市販コンポーネントには、そのものズバリ「ComboBindingントロール」などがあって、DataBoundとDataBinding両方のイベントがあります。
Infragisticsなんかも同じだったように思います。
DataBoundイベントの場合は、不都合データをそのままバインドすると例外が出るため、バインド前に被バインドデータを加工するしかありませんが、DtaBindingイベントであればその時点で「応急的に」処置できるので、ロジックがすっきりするような感じかな?
WindowsFormsやAccessVBA資産(人やスキルも含む)をASP.NETなどに移行したい場合は、こういう市販コントロールを使った開発スタイルも大きい需要があるみたいですよ。
shockatzさん 大変お世話になっております。
Accessで作成してあるシステムをASP.Net へ移行している作業をしております。
なるほど BeforeUpDate の概念がないのですね!そういう場合に市販のコントロールを使用して このような場合に備えるのも一般的なんですね!大変参考になりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- サーバー Windowsサーバでグループを検索したい 1 2023/04/17 15:30
- Visual Basic(VBA) VBAでシートの保護をかける際に「書式設定の変更」を有効にする 1 2023/04/17 18:18
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- 運転免許・教習所 交通違反の内容 3 2022/08/17 19:49
- JavaScript テーブルの中のセレクトボックスの値が0のとき、非表示にしたい 3 2022/05/29 10:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Visual Basic 6.0 コンボボック...
-
(VBA)チェックボックスのclick...
-
一定時間操作されないと自動で...
-
TextboxまたはMaskEditboxでの...
-
タブキー押下時のイベントをひ...
-
keypress
-
特定のキーを押すまでループさ...
-
VB.NETでフォームがない...
-
フォーカスについてお教えください
-
Access データ表示 完了時のイ...
-
Objective-Cでキーボードイベン...
-
EXCEL VBA----ユーザーフォーム...
-
エクセルでエンターを押す前に...
-
【VB】タブ切り替え時のイベント
-
コマンドボタン(入力)をクリッ...
-
DephiでのTextボックスでの数値...
-
ASP.Net BeforeUpDate のように
-
HTMLです。画像をHTMLで表した...
-
「ご処理進めて頂きますようお...
-
アクセスVBAのMe!と[ ]
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB】タブ切り替え時のイベント
-
特定のキーを押すまでループさ...
-
タブキー押下時のイベントをひ...
-
Visual Basic 6.0 コンボボック...
-
一定時間操作されないと自動で...
-
WPFでの時刻入力コントロールに...
-
(VBA)チェックボックスのclick...
-
コンボボックスにキー入力をさ...
-
VB.NETのDropDownListをReadOnl...
-
VB.NETでフォームがない...
-
NULLで検索を行ったときは全件...
-
Excel VBA マクロ実行中のみテンキ...
-
KEYPREVIEW=TRUEについて。意味...
-
エクセルVBAのテキストボック、...
-
テキストボックスの入力文字を1...
-
フォーカスについてお教えください
-
【Mouse Down】キーリピートを...
-
キーイベントを擬似的に発生さ...
-
VB6で電卓を作っているのですが...
-
複数のテキストボックスのカン...
おすすめ情報