- - PR -
VisualStudio.NET2003 の コード自動生成機能無効化 について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-02-10 14:14
こんにちは。
VisualStudio.NET2003 でASP.NET(VB.NET) Webアプリケーション を作成しています。 ASP.NET のコード自動生成機能を無効にする方法をご存知の方が いらっしゃいましたら、方法を教えてください。 【無効にしたい理由】 各画面で共通した処理(イベント)を複数箇所に書きたくないので、 CodeBehind の継承元のBasePageクラス(自分で作成)であらかじめイベントを宣言しておき、各CodeBehindクラスでは、親クラスで宣言したとおりの ID を指定したコントロールを.aspxファイルに貼り付けるだけで良いようにしました。 しかし、.aspxファイルに貼り付けたコントロールに対応した以下のようなコード がコードビハインドに自動生成されてしまいます。 "Protected WithEvents Button5 As System.Web.UI.WebControls.LinkButto" このコードは親クラスに宣言されているため、エラーが発生してしまうのです。. 皆さん、よろしくお願いします。 [ メッセージ編集済み 編集者: モグリ 編集日時 2005-02-10 14:20 ] | ||||||||
|
投稿日時: 2005-02-10 14:51
直接の解答ではないですが、
各画面で共通した処理(ボタンがクリックされた時?)を ユーザーコントロールで作成するのではダメですか? | ||||||||
|
投稿日時: 2005-02-10 15:03
burton999 様
ご返答ありがとうございます。 そうですね。 その方法で目的は達成できると思います。 ただ、VisualStudioのコード自動生成さえ無効にできれば 親クラスにイベントを宣言する方法で、処理の共通化が可能なので、 その方法を探っていたところです。 (特にこの方法にこだわりは無いのですが、 技術的な問題ではなく、ツールの仕様の問題によって この方法が使えないのが少し悔しかったので、情報を求めた次第です。) | ||||||||
|
投稿日時: 2005-02-10 16:54
BasePageがボタンを宣言しているのだから、BasePageが貼り付け(Controls.Add)するべきでしょう。
この作業が不用になります。 [ メッセージ編集済み 編集者: todo 編集日時 2005-02-10 16:55 ] | ||||||||
|
投稿日時: 2005-02-10 17:52
todo 様 ご返信ありがとうございます。
ASP.NETにおいて.aspx(HTML)の継承ができますか? [aspxファイル] -- [コードビハインド] BasePage.aspx -- BasePage.aspx.vb (System.Web.UI.Pageクラスを継承) ChildPage.aspx -- ChildPage.aspx.vb (BasePageクラスを継承) のようになっておりますが、BasePage.aspxに書かれた ASP.NETコントロールは、ChildPage.aspxに反映されるのでしょうか? いままで無理だと思って、試していなかったのですが、 試してみます。 | ||||||||
|
投稿日時: 2005-02-10 18:06
デザイン部のaspxの継承はできないと思います。
コードビハインドを利用した場合 xxxx.aspx.vbクラスをxxxx.aspxクラスが継承して動作するようになっています。 | ||||||||
|
投稿日時: 2005-02-10 18:12
public class BasePage : Page
{ protected Button Button1; protected override void OnInit(EventArgs e) { base.OnInit (e); Button1 = new Button(); Button1.ID = "Button1"; Button1.Text = "Button1"; base.Controls.Add(Button1); } } BasePageに動的にボタンを追加すればいいと思ったのですが、 型 'Button' のコントロール 'Button1' は、runat=server を含むフォーム タグの内側に置かなければ成りません。 とエラーになりました。 (汗) |
1