- - PR -
DataGrid が認識されなくなった
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-03-17 11:24
ASP.NET(VB)<VS.NET2003>で開発しております。
DataGrid が貼り付けてある画面で「編集」「更新」「中止」「削除」「追加」といった機能を実現しています。どの処理も正常に動作していたのですが、画面名が変更になったため、VS.NET で以下のような編集をしたところ、どのボタンも認識しなくなってしまいました。 1.ソリューションエクスプローラでファイル名を変更。 A.aspx → B.aspx 2.B.aspx.vb でページ名を変更。 Public Class _A → Public Class _B 何が原因なのでしょうか? 最悪、画面を作り直せば動作するのでしょうが、再度画面名の修正が発生した場合に原因が分かっていないと再度作り直しになってしまいますので、今のうちに原因を把握しておきたいと考えております。 <本当は、開発時に画面名の変更がある方がおかしいのでしょうけど・・・ その辺はご勘弁ください> よろしくお願い致します。 追記: 認識しなくなった、とは、ItemCommandイベントやEditCommandイベントに処理が入ってこない、という意味です。 追記: すいません。画面名変更時に、以下の修正もしております。 3.グリッドにテンプレート列を2列追加し、ItemTemplete にそれぞれボタンを追加しました。 [ メッセージ編集済み 編集者: ひろれい 編集日時 2006-03-17 11:27 ] [ メッセージ編集済み 編集者: ひろれい 編集日時 2006-03-17 11:35 ] | ||||||||
|
投稿日時: 2006-03-17 11:36
ソースがいじられて
InitializeComponent() のイベントハンドラのインストールのコードが消えてたりとかですかね。 _________________ 囚人のジレンマな日々 | ||||||||
|
投稿日時: 2006-03-17 11:49
囚人さん、早速の回答ありがとうございます。
幸いにも画面名変更前の aspx.vb がありましたので、上記を確認しましたが、中身は同じで、何のコードも記載されていませんでした。 以下、現状のソースから採取。
| ||||||||
|
投稿日時: 2006-03-17 12:39
B.aspxファイルのページディレクティブ(先頭の一行)で継承元(ソース側)の
クラスを指定してると思います。 Class_AからClass_Bにクラス名を変更した場合、ここも変更する必要がありますが その点は大丈夫ですか? | ||||||||
|
投稿日時: 2006-03-17 13:03
はい。その点は、確認しております。クラス名を変更した時点で、自動的に書き換わりました。 <%@ Page Language="vb" AutoEventWireup="false" Codebehind="B.aspx.vb" Inherits="Test._B"%> | ||||||||
|
投稿日時: 2006-03-17 13:08
Handles 句がとれちゃっているとか・・・ | ||||||||
|
投稿日時: 2006-03-17 13:17
みなさん、ご迷惑をおかけ致しました。解決しました。
回答は、それに近かったようです。 グリッドに関するコードを全て削除し、グリッドをダブルクリックして作成されるコード(SelectedIndexChanged)を元に各イベントを再作成したところ、正常に動くようになりました。コードは一切変えておらず、削除したコードをそのままイベントごとに転記していっただけなんですけど、それで解決しました。 ちなみに、元のイベントには、Handles句は付いていました。 どこかでグリッド名を認識しなくなったのでしょうか・・・ どこか腑に落ちませんけど・・・ | ||||||||
|
投稿日時: 2006-03-18 09:59
WithEvents での宣言名と合致していなかったとか、それくらいしか考えられませんけど... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1