DOBON.NETプログラミング道掲示板

■35692 / 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系で廃止されているため、文句言っても仕様改善は期待できません。
    テンプレートフィールドを使うのが無難と判断しました。




解決み!
違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[3]: webformでの制御 /kiku 返信無し
 
上記関連ツリー

Nomalアイコン webformでの制御 / イクイノックス (25/09/24(Wed) 11:34) #35687
Nomalアイコン Re[1]: webformでの制御 / kiku (25/09/24(Wed) 15:25) #35688
  └Nomalアイコン Re[2]: webformでの制御 / イクイノックス (25/09/24(Wed) 16:05) #35689
    ├Nomalアイコン 【報告】No35687 の投稿はマルチポストです / (報告) (25/09/24(Wed) 16:24) #35690
    └Nomalアイコン Re[3]: webformでの制御 / kiku (25/09/24(Wed) 17:12) #35691
      └Nomalアイコン webformでの制御 / イクイノックス (25/10/02(Thu) 11:28) #35692 解決み! ←Now

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -