- PR -

イベントの公開(特殊)

投稿者投稿内容
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-02-08 13:53
# 参考までに。

逐次、画面を追加していく事が想定されているWebアプリケーションで、画面追加の際にページではなくユーザーコントロールを追加する、という方式を採った事があります。
例えば申請・承認を処理するシステムで、出張旅費申請や人事申請などの案件ごとにユーザーコントロールを追加していく、というような感じです。
その際、プロパティやメソッド、イベントなどをインターフェイスで定義しておいて、各ユーザーコントロールはそれを実装するようにしています。

コード:
UserControl MyControl = (UserControl)LoadControl(ControlPath);
((IMyControl)MyControl).MyEvent += new MyEventHandler(MyControl_MyEvent);
Controls.Add(MyControl);


Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-02-08 22:00
無視?本当にイベント以外は意図したとおりに動作していますか?


 "外観"を変えるということなら、普通はスタイルシートを使います。例えば、eXperts Connectionというサイトでは、登録すると「個人情報」の中で「スキン」として4種類の中から選ぶことが出来ます。これは読み込むスタイルシートを変更することで、外観を変えています。HTMLのソースを見れば、ヘッダの中でスタイルシートを読み込み、ほぼすべての要素にclassが設定されていることがわかるでしょう。どれくらい変わるかは、実際に登録して試してみてください。スタイルの作り方によっては、アイテムを配置する場所も変更できます。

 それとも、スタイルシートで対応できないような外観なのでしょうか?


 あと、マニュアルも読みましょうね。EventHandlerはnew出来るアイテムですか?ハンドラはすでに存在していなければならない、と思うのですが。

_________________
bean
常連さん
会議室デビュー日: 2004/12/01
投稿数: 30
投稿日時: 2005-02-09 00:24
こんばんは。無視したわけでは御座いません。ごめんなさい。

スタイルを変えるのではなく、意味合い的には似ているのですが、
概観(外枠)を変えたいのです。Windowsなどではスキンというのでしょうか。
LinuxではXを変えることで概観がかわりますよね?
本当は、Panelなどを継承しカスタムのみで作るのが良いのかとも思います。
一番近いイメージでいくとMyYahooのページです。
また、スタイルだけでなく、簡単な振る舞いなども統一し、
どのコントロールでも、同じ型で統一し、管理したいと考えています。

ごめんなさい、言いたいことが伝わっていないかもしれません。
まだ、構想している最中なので、自分自身でも方向性が固まっていません。

きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-02-09 01:07
beanさん、こんばんは。

引用:

概観(外枠)を変えたいのです。Windowsなどではスキンというのでしょうか。


実はここら辺のイメージが湧かないんですが、「Webパーツ」のようなものでしょうか?

引用:

また、スタイルだけでなく、簡単な振る舞いなども統一し、
どのコントロールでも、同じ型で統一し、管理したいと考えています。


この辺に関していえば、[2005-02-08 13:53]の私の投稿にあるように、Interface で規定してやるのが良いような気がします。どうも、Webフォームとかで「継承」を使うと、フォームデザイナが余計な事をしてくれたりするので…。

引用:

本当は、Panelなどを継承しカスタムのみで作るのが良いのかとも思います。


個人的には、ユーザーコントロール(ASCX)を独立したプロジェクトとして開発できて、デプロイ済みのWebアプリケーションに簡単にプラグインできると良いな、と思っています。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-02-09 01:23
Jittaさん、こんばんは。

引用:

 あと、マニュアルも読みましょうね。EventHandlerはnew出来るアイテムですか?ハンドラはすでに存在していなければならない、と思うのですが。


あれ? C# でイベントハンドラを登録する場合、

コード:
button.Click += new EventHandler(this.Button_Clicked);


とか書きませんでしたっけ?
# vbの場合は AddressOf ですが(←普段はこっちしか使わないので自信なし)。
いのつち
ベテラン
会議室デビュー日: 2002/05/14
投稿数: 73
投稿日時: 2005-02-09 10:09
私もきくちゃんさんのインターフェイスを定義して…って方法に一票です。

引用:

スタイルを変えるのではなく、意味合い的には似ているのですが、
概観(外枠)を変えたいのです。Windowsなどではスキンというのでしょうか。
LinuxではXを変えることで概観がかわりますよね?



DotNetNukeを参考にしてみるとよいかもしれません。
DotNetNukeとは、.Net(VB.NET)で作成されたオープンソースのコンテンツ管理Webアプリです。PHPだとXOOPSとかが有名ですが、似たような感じです。

かなり大規模なプロジェクトなので、ソースを見るのも大変かもしれませんが、
動的にコントロールを配置,スキンなどの実装がされているので、参考になると思いますよ。

参考
本家DNNサイト
日本語の参考サイト
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-02-09 22:23
 My Yahoo! のツアーを見ました。これ、Webパーツですねぇ。


きくちゃんさん>
 そのようでした。「読め」は私でした(__;

_________________

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