- PR -

VisualStudio.NET2003 の コード自動生成機能無効化 について

1
投稿者投稿内容
モグリ
会議室デビュー日: 2005/02/10
投稿数: 5
投稿日時: 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 ]
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-02-10 14:51
直接の解答ではないですが、
各画面で共通した処理(ボタンがクリックされた時?)を
ユーザーコントロールで作成するのではダメですか?
モグリ
会議室デビュー日: 2005/02/10
投稿数: 5
投稿日時: 2005-02-10 15:03
burton999 様
ご返答ありがとうございます。

そうですね。
その方法で目的は達成できると思います。

ただ、VisualStudioのコード自動生成さえ無効にできれば
親クラスにイベントを宣言する方法で、処理の共通化が可能なので、
その方法を探っていたところです。

(特にこの方法にこだわりは無いのですが、
技術的な問題ではなく、ツールの仕様の問題によって
この方法が使えないのが少し悔しかったので、情報を求めた次第です。)
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2005-02-10 16:54
引用:

モグリさんの書き込み (2005-02-10 14:14) より:
各画面で共通した処理(イベント)を複数箇所に書きたくないので、
CodeBehind の継承元のBasePageクラス(自分で作成)であらかじめイベントを宣言しておき、


BasePageがボタンを宣言しているのだから、BasePageが貼り付け(Controls.Add)するべきでしょう。

引用:

各CodeBehindクラスでは、親クラスで宣言したとおりの ID を指定したコントロールを.aspxファイルに貼り付けるだけで良いようにしました。



この作業が不用になります。

[ メッセージ編集済み 編集者: todo 編集日時 2005-02-10 16:55 ]
モグリ
会議室デビュー日: 2005/02/10
投稿数: 5
投稿日時: 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に反映されるのでしょうか?

いままで無理だと思って、試していなかったのですが、
試してみます。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-02-10 18:06
デザイン部のaspxの継承はできないと思います。
コードビハインドを利用した場合
xxxx.aspx.vbクラスをxxxx.aspxクラスが継承して動作するようになっています。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)