C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: GridVIewの編集モードを継続する方法


(過去ログ 94 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■55931 / inTopicNo.1)  GridVIewの編集モードを継続する方法
  
□投稿者/ まっさ (14回)-(2010/12/18(Sat) 11:43:07)

分類:[ASP.NET (C#)] 

GridViewを編集可能モードにして、値を変更後「更新」を押した際に
RowCommanでエラーチェックをしています。

この時、エラー発生の場合、編集可能モードを継続したいのですが
方法があるのでしょうか?

よろしくお願いいたします。

引用返信 編集キー/
■55935 / inTopicNo.2)  Re[1]: GridVIewの編集モードを継続する方法
□投稿者/ もりお (313回)-(2010/12/18(Sat) 14:22:03)
2010/12/18(Sat) 14:30:07 編集(投稿者)
No55931 (まっさ さん) に返信

> RowCommanでエラーチェックをしています。

GridView.RowCommand イベントのことでしょうか。

> この時、エラー発生の場合、編集可能モードを継続したいのですが
> 方法があるのでしょうか?

GridView.RowUpdating イベントのハンドラーに渡される
GridViewUpdateEventArgs オブジェクトの Cancel プロパティにて
更新処理を中断するか否かを設定することができます。

エラー発生時に GridViewUpdatingEventArgs.Cancel プロパティに true をセットすると
よいかと思います。

RowCommand イベントでエラーチェックを行うと更新処理を中断するか否かをフィールドに保持
する必要があります。
エラーチェックも RowUpdating イベントで行ったほうがよいかもしれません。

引用返信 編集キー/
■55937 / inTopicNo.3)  Re[2]: GridVIewの編集モードを継続する方法
□投稿者/ まっさ (15回)-(2010/12/20(Mon) 09:16:38)
>
> エラー発生時に GridViewUpdatingEventArgs.Cancel プロパティに true をセットすると
> よいかと思います。
>
> RowCommand イベントでエラーチェックを行うと更新処理を中断するか否かをフィールドに保持
> する必要があります。
> エラーチェックも RowUpdating イベントで行ったほうがよいかもしれません。

お返事ありがとうございます。
試したところ、更新はキャンセルされ値は変更前に戻るのですが、
編集モードが解除されます。

できれば、値はもとに戻さず、編集モードを維持したいと思っています。
(エラーは利用者にメッセージ表示させるので、利用者に値を修正させたいと思います。)

解決方法があればよろしくお願いします。

引用返信 編集キー/
■55946 / inTopicNo.4)  Re[3]: GridVIewの編集モードを継続する方法
□投稿者/ もりお (314回)-(2010/12/20(Mon) 11:10:14)
No55937(まっさ さん)に返信

> 編集モードが解除されます。

編集モードの終了は、更新処理の最終段階としてあります。
GridView1.EditIndex = -1;
編集モードを終了する上記のようなコードを記述していない限り
更新処理を中断することによって、編集モードが解除されることはないはずです。

もう一度確認してみてはいかがでしょうか。

protected void GridView1_RowUpdating(
    object sender,
    GridViewUpdateEventArgs e) {
  if (hasError()) {
    e.Cancel = true;
  }
}

protected Boolean hasError() {
  return true;
}

引用返信 編集キー/
■55947 / inTopicNo.5)  Re[4]: GridVIewの編集モードを継続する方法
□投稿者/ まっさ (16回)-(2010/12/20(Mon) 11:37:41)
No55946 (もりお さん) に返信
>
> ■No55937(まっさ さん)に返信
>
>>編集モードが解除されます。
>
> 編集モードの終了は、更新処理の最終段階としてあります。
> GridView1.EditIndex = -1;
> 編集モードを終了する上記のようなコードを記述していない限り
> 更新処理を中断することによって、編集モードが解除されることはないはずです。
>
> もう一度確認してみてはいかがでしょうか。
>

まさにご指摘の通りでした。 恥ずかしい限りです。

うまくいかないと悩んでた時に、EditIndexを変更したり
あれこれと試行錯誤を繰り返したロジックが一部残っていました。

全て解決しました。 ありがとうございました。
本当に助かります!!


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -