DOBON.NETプログラミング道掲示板
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
[ スレッド内全5レス(親記事-5 表示) ] <<
0
>>
■35687
/ 親記事)
webformでの制御
▼
■
□投稿者/ イクイノックス
一般人(1回)-(2025/09/24(Wed) 11:34:57)
環境/言語:[Webform、C#、.NetFramework4.8.1]
分類:[ASP.NET]
通常、「更新」ボタンなどを画面デザインで配置して実装する場合、
クライアントスクリプトで記述するconfirmメソッドはOnClickイベントで実装すると思います。
gridviewのAutogenerate系のボタンやコマンドコントロールで「自動的」に実装される「ボタン」は画面デザインの時点ではhtmlソース表示しても記述されてないため、OnClickでの制御ができません。
そのため、postback後に制御する必要がありますが、入力チェック→alertでメッセージ表示は、サーバー側の処理が終わった後に出すイメージで問題ありませんが、confirmはpostback後にRegisterClientScriptBlockで実行するように処理しても、
サーバー側での更新処理が全部終わってからメッセージが出力される挙動になるため、確認メッセージの用をなしていません。
OnClickに該当する処理をpostback前にhtmlソースに書かれてなくても無理やり挙動させる、あるいはpostback後の「更新」「削除」などのイベント処理の冒頭でconfirmを出し、ok:実行、キャンセル:e.cancel=true等で中止
というような処理をするのは不可能なのでしょうか?
ご存じの方ご教示ください。
多分VBでもC#でも同じような処理になると思いますが、
一応サーバーサイドはC#で記述してます。
マルチポストを報告
Javascriptを有効にしてください
この投稿がマルチポスト(全く同じ内容の投稿が別の掲示板に投稿されている)の場合は、以下のフォームをご利用いただくと、報告の投稿が簡単に行えます。
このフォームに必要事項を入力後、「返信フォームに入力する」ボタンをクリックすると、このページの下にある
返信フォーム
の項目が自動的に埋まります。実際に投稿するには、その後、返信フォームの「送信」ボタンをクリックしてください。
このフォームを利用しても返信フォームが埋まるだけですので、後で書き直してから投稿することもできます。
「マルチポストされている場所」には、マルチポストされている場所のURLを入力してください。複数のURLを改行区切りで入力することができます。
マルチポストされている場所
オプション
マルチポスト先の投稿が、別人によるいたずらである可能性が高い
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
■35688
/ ResNo.1)
Re[1]: webformでの制御
▲
▼
■
□投稿者/ kiku
一般人(3回)-(2025/09/24(Wed) 15:25:36)
■
No35687
に返信(イクイノックスさんの記事)
> そのため、postback後に制御する必要がありますが、入力チェック→alertでメッセージ表示は、サーバー側の処理が終わった後に出すイメージで問題ありませんが、confirmはpostback後にRegisterClientScriptBlockで実行するように処理しても、
> サーバー側での更新処理が全部終わってからメッセージが出力される挙動になるため、確認メッセージの用をなしていません。
サーバーサイドの処理を2つに分ければ良いのではないでしょうか?
1.入力チェックのみを行う処理(入力チェックエラー)
2.登録のみを行う処理(登録時のエラー)
当方、WebFormアプリの作成未経験のため、概念的な回答のみになります。
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
■35689
/ ResNo.2)
Re[2]: webformでの制御
▲
▼
■
□投稿者/ イクイノックス
一般人(2回)-(2025/09/24(Wed) 16:05:24)
■
No35688
に返信(kikuさんの記事)
> ■
No35687
に返信(イクイノックスさんの記事)
>>そのため、postback後に制御する必要がありますが、入力チェック→alertでメッセージ表示は、サーバー側の処理が終わった後に出すイメージで問題ありませんが、confirmはpostback後にRegisterClientScriptBlockで実行するように処理しても、
>>サーバー側での更新処理が全部終わってからメッセージが出力される挙動になるため、確認メッセージの用をなしていません。
>
> サーバーサイドの処理を2つに分ければ良いのではないでしょうか?
> 1.入力チェックのみを行う処理(入力チェックエラー)
> 2.登録のみを行う処理(登録時のエラー)
>
> 当方、WebFormアプリの作成未経験のため、概念的な回答のみになります。
1も2もalertなので表示できます。
問題はconfirmのほうです。
具体的に言うと、
「削除」ボタンはWebform側でサーバーサイドで自動的に生成される感じで、htmlで表現されていません。
なので、「削除」押下→即postback→(ここからサーバーサイド)page_load→grid_RowCommand→grid_RowDeletingの順にイベントが発生します。
grid_RowCommandでは「新規作成」「更新」、「削除」いずれか発生したか判定できます。page_loadではpostbackしたかどうかしか判定できないようで何ボタンが押されたかわかりません。
grid_RowCommandで「削除」のときconfirmを出すみたいな処理はできますが、
それはgrid_RowDeletingの処理、つまり削除処理が実行された後に表示されるので、confirmの操作が反映できません。
おそらくpage_loadで出せばいけるのかもしれませんが、「削除」であることが判定できないためconfirmを出す処理を組み込めません。
こんな状況です。
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
■35690
/ ResNo.3)
【報告】No35687 の投稿はマルチポストです
▲
▼
■
□投稿者/ (報告)
一般人(1回)-(2025/09/24(Wed) 16:24:14)
No35687
の投稿はマルチポストです。もし元記事の投稿者にマルチポストの心当たりがない場合は、すぐに返信でお知らせください。
●マルチポストされている場所
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=31022
----------
この掲示板ではマルチポストが禁止されています。詳しくは、「書き込みのルールについて」をお読みください。
●書き込みのルールについて
https://dobon.net/vb/bbs/index.html
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
■35691
/ ResNo.4)
Re[3]: webformでの制御
▲
▼
■
□投稿者/ kiku
一般人(4回)-(2025/09/24(Wed) 17:12:59)
■
No35689
に返信(イクイノックスさんの記事)
> ■
No35688
に返信(kikuさんの記事)
>>■
No35687
に返信(イクイノックスさんの記事)
> 問題はconfirmのほうです。
> 具体的に言うと、
> 「削除」ボタンはWebform側でサーバーサイドで自動的に生成される感じで、htmlで表現されていません。
> なので、「削除」押下→即postback→(ここからサーバーサイド)page_load→grid_RowCommand→grid_RowDeletingの順にイベントが発生します。
>
> grid_RowCommandでは「新規作成」「更新」、「削除」いずれか発生したか判定できます。page_loadではpostbackしたかどうかしか判定できないようで何ボタンが押されたかわかりません。
grid_RowCommand処理を下記にしたらできませんか?
1.grid_RowCommandで「削除」ボタンが押下されたか判断。
2.削除ボタンが押されたら、削除ボタン用入力チェック画面へ遷移。
3.削除ボタン用入力チェック画面では、confirmのみ表示する。
4.confirmでOKなら、削除処理画面へ遷移。
5.confirmでcancelなら、元の画面へ遷移し、削除された表を表示。
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
■35692
/ ResNo.5)
Re[4]: webformでの制御
▲
▼
■
□投稿者/ イクイノックス
一般人(3回)-(2025/10/02(Thu) 11:28:07)
■
No35691
に返信(kikuさんの記事)
> ■
No35689
に返信(イクイノックスさんの記事)
>>■
No35688
に返信(kikuさんの記事)
> >>■
No35687
に返信(イクイノックスさんの記事)
>>問題はconfirmのほうです。
>>具体的に言うと、
>>「削除」ボタンはWebform側でサーバーサイドで自動的に生成される感じで、htmlで表現されていません。
>>なので、「削除」押下→即postback→(ここからサーバーサイド)page_load→grid_RowCommand→grid_RowDeletingの順にイベントが発生します。
>>
>>grid_RowCommandでは「新規作成」「更新」、「削除」いずれか発生したか判定できます。page_loadではpostbackしたかどうかしか判定できないようで何ボタンが押されたかわかりません。
>
> grid_RowCommand処理を下記にしたらできませんか?
> 1.grid_RowCommandで「削除」ボタンが押下されたか判断。
> 2.削除ボタンが押されたら、削除ボタン用入力チェック画面へ遷移。
> 3.削除ボタン用入力チェック画面では、confirmのみ表示する。
> 4.confirmでOKなら、削除処理画面へ遷移。
> 5.confirmでcancelなら、元の画面へ遷移し、削除された表を表示。
それだと処理が複雑になりすぎるので、
AutoGenerateDeleteボタンによる実装を断念し、
テンプレートフィールドのアイテムとしてボタンを定義して、
1.OnClientClickでConfirm表示(returnを返す形)
2.CommandNameプロパティーをDeleteに設定
これで戻り値がfalseの時は処理中止、trueの時はgrid_RowDeleting発動(=行削除実行)となります。
結局、AutoGenerateDeleteボタンだと即postbackになるようにロジックが自動生成してしまうので、grid_RowCommandの時点では手遅れ(page_loadが先に発生してしまうので)、なのでpostback前にConfirmのように処理分岐が必要なJSの処理実行するには上記のような方法しかないことがわかりました。
即postbackに必ずなってしまう使用がいまいちとは思いつつ、最早WebformはCore系で廃止されているため、文句言っても仕様改善は期待できません。
テンプレートフィールドを使うのが無難と判断しました。
解決
済
み!
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
このスレッドをツリーで一括表示
スレッド内ページ移動 / <<
0
>>
このスレッドに書きこむ
入力内容にタグは利用できません。
引用部分(行頭に「>」や「■」が付いている部分)が全体の 80% 以上のコメントは投稿できません。
半角カナは使用しないでください。文字化けの原因になります。
削除キーを覚えておくと、自分の記事の編集・削除ができます。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
使用例)
No123 → 記事No123の記事リンクになります(指定表示)。
No123,130,134 → 記事No123/130/134 の記事リンクになります(複数表示)。
No123-130 → 記事No123〜130 の記事リンクになります(連続表示)。
投稿前に必ずお読みください
初めて投稿される方は、必ず「
書き込みのルールについて(12/4/2更新)
」をお読みください。
読むのが面倒、ルールを守りたくないという方は、「
お気楽掲示板
」へ投稿してください。
質問を投稿する場合は、「
質問をする際のアドバイス
」を参考にしてください。
投稿は、明記のない限り、パブリックドメインになります。
マルチポストされた投稿を報告する時は匿名で投稿し、マルチポストされている場所を併記してください。以下のリンクをクリックしていただくと、自動で下のフォームが埋まりますので、その後「送信」ボタンを押してご投稿ください。
マルチポストの報告をする
マルチポストの報告をするが、マルチポスト先の投稿が嫌がらせである(元の投稿者とは別人が行なっている)可能性が高い
(投稿日時に開きがあり、こちらの投稿の方が早い場合は、その可能性が高いです)
Name
/
E-Mail
/
Title
/
URL
/
Comment/ 通常モード->
図表モード->
(適当に改行して下さい/半角10000文字以内)
File
/
アップ可能拡張子=> /
.gif
/
.jpg
/
.png
/.zip
1) 太字の拡張子は画像として認識されます。
2) 画像は初期状態で縮小サイズ250×250ピクセル以下で表示されます。
3) 同名ファイルがある、またはファイル名が不適切な場合、
ファイル名が自動変更されます。
4) アップ可能ファイルサイズは1回
20KB
(1KB=1024Bytes)までです。
5) ファイルアップ時はプレビューは利用できません。
6) スレッド内の合計ファイルサイズ:[0/300KB]
残り:[300KB]
Icon
/
ホイールロボ
くるりロボ
ぱんだ
ふとめネコ
ねずみ
こあら
疑問ねこ
ランダム
管理者用
(画像を選択/
サンプル一覧
)
削除キー
/
(半角8文字以内)
解決
済
み!
BOX/
解決したらチェックしてください!(スレッドを閉じる目的ではチェックしないでください!)
クリエイティブ・コモンズ・ライセンス
を Comment の末尾に挿入するには、以下のリンクをクリックしてください。(Javascript で挿入しているだけです。)
表示(CC BY)
|
表示-改変禁止(CC BY-ND)
|
表示-継承(CC BY-SA)
|
表示-非営利(CC BY-NC)
|
表示-非営利-改変禁止(CC BY-NC-ND)
|
表示-非営利-継承(CC BY-NC-SA)
プレビュー/
クッキーに保存しない/
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
-
Child Tree
-