- - PR -
DataGridのEditCommandColumnについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-04-05 16:02
始めまして、いつも参考にさせていただいてます。
ASP.NET(VB.NET)で、DataGridのEditCommandColumnを使用して Webからテーブルを更新する画面を作成しています。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/Vbcon/html/vbwlkwalkthroughusingdatagridwebcontroltoreadwritedata.asp ↑のページを参考にしてDataGrid_EditCommandハンドラを作成し、 「編集」ボタンクリック時の処理を入れる所まではうまくいきました。 同様にしてDataGrid_UpdateCommandハンドラを作成して 「更新」ボタンクリック時の処理を記述したのですが、動いてくれません。 試しにDebugモードでブレークポイントをつけてみると通りぬけてしまいました。 (DataGrid_EditCommandのブレークポイントには止まってくれます) ここが違ってる!という方、 同様の現象に心当たりのある方がいらっしゃいましたら 是非情報を頂きたく、よろしくお願いします。 ↓edit,update部分のソースです Private Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand DataGrid1.EditItemIndex = e.Item.ItemIndex DataGrid1.DataBind() End Sub Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand DtgGrid1.EditItemIndex = -1 DtgGrid1.DataBind() ---省略(update部分)-- End Sub |
|
投稿日時: 2004-04-05 17:53
DataGrid_UpdateCommandのイベントハンドラの定義が消えているってことはありませんか?。
(InitializeComponentメソッドの中に定義されている) VS.NET(2003)ではたまに発生しますよ。 |
|
投稿日時: 2004-04-05 18:13
返信ありがとうございます。
" Web フォーム デザイナで生成されたコード "にある↓の事でしょうか。 <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub 何も記述されてないみたいなのですが。。(汗) |
|
投稿日時: 2004-04-12 13:06
自己レスです。
自分では解決できませんでしたので、 上司に頼んでMicrosoftの技術サポートへ質問させてもらいました。 -回答- 「ポストバックイベント発生時、Page_Load() においてリバインド処理を行いますとDataGrid の再構築が行われたとみなされ、それまでのイベントが破棄されます」 だそうです。 よって以下の2項目を修正し、問題なく実行することが出来ました。 1. DataGrid の EnableViewState プロパティを True にする 2. Page_Load() 内で Not IsPostBackの場合のみ、DataBindを行う お騒がせ致しました。 |
1