C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[13]: ASP.NET にて画面分割


(過去ログ 18 を表示中)

[トピック内 20 記事 (1 - 20 表示)]  << 0 >>

■7165 / inTopicNo.1)  ASP.NET にて画面分割
  
□投稿者/ osada (1回)-(2007/08/31(Fri) 11:24:46)

分類:[ASP.NET (VB)] 

2007/08/31(Fri) 11:26:31 編集(投稿者)
2007/08/31(Fri) 11:26:26 編集(投稿者)

長田と申します。

VS2005 にてWebサイトを勉強中です。



・どうしても解決できそうにないので、投稿させて頂きました。



(経緯)

下名は、ASPにて作成したWebアプリケーションをASPXにコンバートしつつ、色々と機能面を勉強しています。



既存画面においては、随所でframeset,frameを使用した画面があり、これを同じ様に作成しようとしたところ、

ASP.NET 2.0 フレームワークおよびVisual Studio2005は、XHTML 1.0 Transitional を対象にしているため、

廃止要素にframeも含まれるため、利用できない事は、わかりました。

(『ツール』⇒『オプション』で検証の設定をXHTML 1.0 Frameset に変更しても、該当のWebフォームが

マスターページを使用しているので、framesetが構文エラーとなってしまいます。)

それと基本的な設定は、Defaultのままにしたいと思っています。



2005以前のバージョン迄は、使えていたみたいですが。



そこで、フレームセットの代替案は、どのようにしたら良いか悩んでおります。



「作成したい画面」

イメージURL
http://msdn2.microsoft.com/ja-jp/library
http://jeanne.wankuma.com/

『質問』

@Contents内で上記の赤い境界線部分の様に画面を分割する具体的な方法を教えてください。

Aまた、境界線は、ドラッグしてサイズを変更できる様にするには、どのようにするのか。



参考サイト等、ご存知でしたら、ご教示願います。

引用返信 編集キー/
■7166 / inTopicNo.2)  Re[1]: ASP.NET にて画面分割
□投稿者/ ぼのぼの (86回)-(2007/08/31(Fri) 11:35:30)
こんにちは。
全てに回答できるわけではないですが、知ってる範囲のことだけ。

No7165 (osada さん) に返信
> Aまた、境界線は、ドラッグしてサイズを変更できる様にするには、どのようにするのか。

フレームを使わずにフレームっぽい画面をつくり、
更にドラッグによるサイズ変更にまで対応するには、
CSSとJavaScriptを使うことになるのですが、
この2つはブラウザ毎に挙動が少しずつ異なります。

#ちなみに、イメージURLに挙げたじゃんぬさんのサイトも、
#Operaだとドラッグによるサイズ変更が動かなかったりします。

従って、例えばIE6のみ対応、みたいなサイトならともかく、
IE6にもIE7にもFireFoxにもOperaにもSafariにも対応させようとすると地獄を見ます。

その場合は、マスタページをあきらめてframesetを使った方が楽かもしれません。
引用返信 編集キー/
■7167 / inTopicNo.3)  Re[2]: ASP.NET にて画面分割
□投稿者/ osada (2回)-(2007/08/31(Fri) 12:48:58)
No7166 (ぼのぼの さん) に返信
> こんにちは。
> 全てに回答できるわけではないですが、知ってる範囲のことだけ。
> 
> ■No7165 (osada さん) に返信
>>Aまた、境界線は、ドラッグしてサイズを変更できる様にするには、どのようにするのか。
> 
> フレームを使わずにフレームっぽい画面をつくり、
> 更にドラッグによるサイズ変更にまで対応するには、
> CSSとJavaScriptを使うことになるのですが、
> この2つはブラウザ毎に挙動が少しずつ異なります。
> 
> #ちなみに、イメージURLに挙げたじゃんぬさんのサイトも、
> #Operaだとドラッグによるサイズ変更が動かなかったりします。
> 
> 従って、例えばIE6のみ対応、みたいなサイトならともかく、
> IE6にもIE7にもFireFoxにもOperaにもSafariにも対応させようとすると地獄を見ます。
> 
> その場合は、マスタページをあきらめてframesetを使った方が楽かもしれません。

ぼのぼの様
返信頂きありがとうございます。

フレームを使ったやり方も視野に入れて検討はしているのですが、.NET自体、開発が始めての経験でして、
例えば、下記の親ファイルaspxコードですと、VS2005では開けない状態となっております。

 <frameset rows="25%,45%,35%">
            <frame src=Default2.aspx />
        <frameset cols="50%,50%">
            <frame src =MGSWEBCOL1.aspx />
            <frame src=MGSWEBCOL02.aspx />
        </frameset>
            
            <frame src=MGSWEBCOL04.aspx />
</frameset>

また親ファィルから子ファイルであるMGSWEBCOL1.aspxやMGSWEBCOL02.aspx の中のコントロールをサーバー側(.aspx.vb)で制御したり出来るのでしょうか?

また、子ファイルMGSWEBCOL1.aspxを別のファイルに差し替えるなどできますでしょうか?

素人質問で申し訳ありませんが宜しければ、ご回答お願い致します。


引用返信 編集キー/
■7172 / inTopicNo.4)  Re[3]: ASP.NET にて画面分割
□投稿者/ ぼのぼの (87回)-(2007/08/31(Fri) 14:35:34)
2007/08/31(Fri) 14:39:59 編集(投稿者)
No7167 (osada さん) に返信
> 例えば、下記の親ファイルaspxコードですと、VS2005では開けない状態となっております。
> (コード略)
フレーム内の個々のaspxさえ編集できれば、
外枠のFrameset定義のHTMLは必ずしもVSで開ける必要はありませんよね?
そこはテキストエディタで直接編集して、ブラウザで動作確認すればいいわけで。

> また親ファィルから子ファイルであるMGSWEBCOL1.aspxや
> MGSWEBCOL02.aspx の中のコントロールをサーバー側(.aspx.vb)で制御したり出来るのでしょうか?
> また、子ファイルMGSWEBCOL1.aspxを別のファイルに差し替えるなどできますでしょうか?
不可能ではないとは思いますが、1画面モノの開発より注意すべき点が多く、
要求される知識・技術のレベルも高くなるので、

> .NET自体、開発が始めての経験でして、
という状態でしたらオススメできません。

また、フレームはフレーム内の個々のコンテンツのURLがアドレスバーで見れないため、
セキュリティ上の観点から近年は忌み嫌われる傾向にあります。


おそらく、
+-----------------------------------------+
+ ヘッダ                                  +
+---+-------------------------------------+
+メ | メイン                              |
+ニ |                                     |
+ュ |                                     |
+| |                                     |
+   |                                     |
+   |                                     |
+   |                                     |
+   |                                     |
+   |                                     |
+   |                                     |
+   |                                     |
+-----------------------------------------+

こういう画面構成を想定されているのでしょうけど、

ヘッダとメニューは本当に常に表示されている必要があるのか?
を真剣に検討しなおした方が良いです。

フレームを使うにしろ、CSS+JavaScriptで擬似的に実現するにしろ、
MSのサイトのように常にヘッダとメニューが表示されるような画面は、
かなりの知識と手間が必要で、ハードルが高いです。

例えばほとんどのブログ系のサイトでは、画面構成は上記の通りでも、
ヘッダとメニューは位置もサイズも固定で、
スクロールするとヘッダとメニューは消えてしまうパターンが多いですよね?

でも使い勝手が悪いかというと、それほどでもなかったりします。
こっちの方が現実的だと思います。

たとえそれが顧客要望だったとしても、
私なら開発コストを理由に顧客を説得する方向を第一に検討します。
#個人が趣味と勉強でやる分には別ですけどね。

引用返信 編集キー/
■7176 / inTopicNo.5)  Re[4]: ASP.NET にて画面分割
□投稿者/ osada (3回)-(2007/08/31(Fri) 15:20:52)
No7172 (ぼのぼの さん) に返信
> 2007/08/31(Fri) 14:39:59 編集(投稿者)
>
> ■No7167 (osada さん) に返信
>>例えば、下記の親ファイルaspxコードですと、VS2005では開けない状態となっております。
>>(コード略)
> フレーム内の個々のaspxさえ編集できれば、
> 外枠のFrameset定義のHTMLは必ずしもVSで開ける必要はありませんよね?
> そこはテキストエディタで直接編集して、ブラウザで動作確認すればいいわけで。
>
>>また親ファィルから子ファイルであるMGSWEBCOL1.aspxや
>>MGSWEBCOL02.aspx の中のコントロールをサーバー側(.aspx.vb)で制御したり出来るのでしょうか?
>>また、子ファイルMGSWEBCOL1.aspxを別のファイルに差し替えるなどできますでしょうか?
> 不可能ではないとは思いますが、1画面モノの開発より注意すべき点が多く、
> 要求される知識・技術のレベルも高くなるので、
>
>>.NET自体、開発が始めての経験でして、
> という状態でしたらオススメできません。
>
> また、フレームはフレーム内の個々のコンテンツのURLがアドレスバーで見れないため、
> セキュリティ上の観点から近年は忌み嫌われる傾向にあります。
>
>
> おそらく、
> +-----------------------------------------+
> + ヘッダ +
> +---+-------------------------------------+
> +メ | メイン |
> +ニ | |
> +ュ | |
> +| | |
> + | |
> + | |
> + | |
> + | |
> + | |
> + | |
> + | |
> +-----------------------------------------+
>
> こういう画面構成を想定されているのでしょうけど、
>
> ヘッダとメニューは本当に常に表示されている必要があるのか?
> を真剣に検討しなおした方が良いです。
>
> フレームを使うにしろ、CSS+JavaScriptで擬似的に実現するにしろ、
> MSのサイトのように常にヘッダとメニューが表示されるような画面は、
> かなりの知識と手間が必要で、ハードルが高いです。
>
> 例えばほとんどのブログ系のサイトでは、画面構成は上記の通りでも、
> ヘッダとメニューは位置もサイズも固定で、
> スクロールするとヘッダとメニューは消えてしまうパターンが多いですよね?
>
> でも使い勝手が悪いかというと、それほどでもなかったりします。
> こっちの方が現実的だと思います。
>
> たとえそれが顧客要望だったとしても、
> 私なら開発コストを理由に顧客を説得する方向を第一に検討します。
> #個人が趣味と勉強でやる分には別ですけどね。



ぼのぼの様
またまた返信頂きありがとうございます。

> +-----------------------------------------+
> + ヘッダ +
> +---+-------------------------------------+
> +メ | メイン |
> +ニ | |
> +ュ | |
> +| | |
> + | |
> + | |
> + | |
> + | |
> + | |
> + | |
> + | |
> +-----------------------------------------+

おっしゃるとおり、上記の通りの画面を想定しています。

どうやら技術的な難易度が高いようですね。

上司に相談してみます。
内部仕様書が存在しないPGMを作成することとなったため、手探りです。

ちなみに私は開発暦2年目です。

またまた、技術的な質問ですが、上記が不可能となると、せめてTreeViewコントロールにスライドバーを表示させたいです。
それは可能でしょうか??
TreeViewコントロールにスクロールバーを表示させるプロパティは存在しますでしょうか?
見てみたのですが無い様に思えたので。

本当にたびたび申し訳ありません。

宜しくお願い致します。





引用返信 編集キー/
■7186 / inTopicNo.6)  Re[5]: ASP.NET にて画面分割
□投稿者/ ぼのぼの (88回)-(2007/08/31(Fri) 16:31:14)
No7176 (osada さん) に返信
> またまた、技術的な質問ですが、上記が不可能となると、せめてTreeViewコントロールにスライドバーを表示させたいです。
> それは可能でしょうか??
> TreeViewコントロールにスクロールバーを表示させるプロパティは存在しますでしょうか?
> 見てみたのですが無い様に思えたので。

×スライドバー
○スクロールバー
ですよね?

TreeViewコントロールは使ったことがないのでプロパティで実現可能かはわかりませんが、
CSSでdivのwidthとheightを固定してoverflow属性を設定することで、
HTML的には可能だと思います。
引用返信 編集キー/
■7187 / inTopicNo.7)  Re[5]: ASP.NET にて画面分割
□投稿者/ いしだ (39回)-(2007/08/31(Fri) 16:56:26)
いしだ さんの Web サイト
> またまた、技術的な質問ですが、上記が不可能となると、せめてTreeViewコントロールにスライドバーを表示させたいです。
> それは可能でしょうか??
Panelの上にTreeViewを配置してPanelにスクロールバーを表示する、
という方法でもいけるんじゃないでしょうか。

引用返信 編集キー/
■7209 / inTopicNo.8)  Re[6]: ASP.NET にて画面分割
□投稿者/ mあ (48回)-(2007/08/31(Fri) 19:09:27)
フレームセットあたりのHTMLは、スクリプトで出してしまえばOKでは?

+-----------------------------------------+
+ ヘッダ                                  +
+---+-------------------------------------+
+メ | メイン                              |
+ニ |                                     |
+ュ |                                     |
+| |                                     |
+   |                                     |
+   |                                     |
+   |                                     |
+   |                                     |
+   |                                     |
+   |                                     |
+   |                                     |
+-----------------------------------------+


<script>
window.opener = null;
w = window.open("","","fullscreen=yes");
w.document.write(
'<fra' + 'meset rows="25%,45%,35%"' + '>' +
'            <fr' + 'ame src=Default2.aspx /' + '>' +
'        <fram' + 'eset cols="50%,50%"' + '>' +
...
'</fra' + 'meset' + '>' );

self.window.close();
</script>

<script> タグも怒られちゃうんですか?


引用返信 編集キー/
■7216 / inTopicNo.9)  Re[5]: ASP.NET にて画面分割
□投稿者/ Jitta (415回)-(2007/08/31(Fri) 21:46:18)
2007/09/01(Sat) 09:50:32 編集(投稿者)
とりあえず、
<div style="width:100%; position:related;">
    <div style="position:absolute; top:0px; left:0px; width:100%; height:120px;">
        ここにヘッダ
    </div>
    <div style="position:absolute; top:120px; width:120px; left:0px;">
        ここにメニュー
        こそっと修正
    </div>
    <div style="position:absolute; top:120px; left:120px;">
        ここにメイン
    <div>
</div>
とか。

引用返信 編集キー/
■7222 / inTopicNo.10)  Re[6]: ASP.NET にて画面分割
□投稿者/ ぼのぼの (89回)-(2007/08/31(Fri) 23:35:16)
No7216 (Jitta さん) に返信
> とりあえず、
> <div style="width:100%; position:related;">
>     <div style="position:absolute; top:0px; left:0px; width:100%; height:120px;">
>         ここにヘッダ
>     </div>
>     <div style="position:absolute; top:120px; width:120px; left:120px;">
>         ここにメニュー
>     </div>
>     <div style="position:absolute; top:120px; left:120px;">
>         ここにメイン
>     <div>
> </div>
> とか。

メニューのleftは0pxでは?(^^; 

引用返信 編集キー/
■7338 / inTopicNo.11)  Re[7]: ASP.NET にて画面分割
□投稿者/ osada (4回)-(2007/09/04(Tue) 09:30:16)
ぼのぼの様
いしだ様
mあ様
Jitta様

ご回答頂き、誠にありがとうございます。
返信が遅くなってしまい大変申し訳ありません。

まだ解決には至っていない状況ですが、皆様がご教授くださったやり方をひとつひとつ実装し、検討していきたいと考えています。

他にも、なにか案等ございましたら、引き続きご教授の程、宜しくお願い致します。


引用返信 編集キー/
■7340 / inTopicNo.12)  Re[8]: ASP.NET にて画面分割
□投稿者/ osada (5回)-(2007/09/04(Tue) 10:03:44)
2007/09/04(Tue) 11:08:34 編集(投稿者)
2007/09/04(Tue) 10:05:00 編集(投稿者)
2007/09/04(Tue) 10:04:58 編集(投稿者)

皆様、引き続き質問となってしまいました(泣

お世話になります。
下記の件について皆様の叡智をお貸しくださればと思い、投稿させていただきました。


親:Form4.aspx
↓
+-----------------------------------------+
+ ヘッダ                                  +←ヘッダ部:form1.aspx
+---+-------------------------------------+
+メ | メイン                              |
+ニ |                                     |
+ュ |                                     |
+| |                                     |
+   |                                     |
+   |                                     |←メイン部:form2.aspx
+   |                                     |
+   |                                     |
+   |                                     |
+   |                                     |
+   |                                     |
+-----------------------------------------+
 ↑
メニュー部:form3.aspx


具体的には上記のイメージにてASP.NET2.0で開発する予定です。
自身の知識が乏しく、どのようにロジックを記述すればよいかわかっていない状況です。


◆質問の内容です。
親フォームにフレームセットを使用し、ヘッダ部、メイン部、メニュー部と分ける予定なのですが、

親フォーム(Form4.aspx)内でメニュー部(form3.aspx)の何かしらのボタンが押されたときというロジックはどのようになりますでしょうか?
またその際にメイン部(form2.aspx)の内容を、メニュー部(form3.aspx)の状態の維持したまま、変化させるような具体的なロジックはどのような
記述になりますでしょうか?
また、このようなことは物理的に可能でしょうか?

どうか宜しくお願い致します。

引用返信 編集キー/
■7342 / inTopicNo.13)  Re[9]: ASP.NET にて画面分割
□投稿者/ ぼのぼの (92回)-(2007/09/04(Tue) 10:36:04)
No7340 (osada さん) に返信
> 親フォームにフレームセットを使用し、
茨の道を選びましたね…

> 親フォーム(Form4.aspx)内でメニュー部(form3.aspx)の何かしらのボタンが押されたときというロジックはどのようになりますでしょうか?
PostBackといって、ASP.NETでは普通自身にPostします。form3.aspxのボタンが押されたときのサーバ側の処理は通常はform3.aspx(.vb)に実装します。

ところで、画面イメージを貼り付けるときは、投稿モードを「図表モード」にした方がいいですよ。
等幅フォントになる&スペースが潰れなくなります。
引用返信 編集キー/
■7355 / inTopicNo.14)  Re[9]: ASP.NET にて画面分割
□投稿者/ いしだ (40回)-(2007/09/04(Tue) 14:08:50)
いしだ さんの Web サイト
> 親フォーム(Form4.aspx)内でメニュー部(form3.aspx)の何かしらのボタンが押されたときというロジックはどのようになりますでしょうか?
> またその際にメイン部(form2.aspx)の内容を、メニュー部(form3.aspx)の状態の維持したまま、変化させるような具体的なロジックはどのような
> 記述になりますでしょうか?

メニューを押されたらメイン部のコンテンツを別のものに差し替えたい(画面遷移させたい)、
という事でしょうか?
それとも、メニュー部のボタンイベント等でビジネスロジックを実行し、メイン画面を制御する、
というような事でしょうか?

引用返信 編集キー/
■7356 / inTopicNo.15)  Re[10]: ASP.NET にて画面分割
□投稿者/ osada (6回)-(2007/09/04(Tue) 15:08:49)
2007/09/04(Tue) 15:10:07 編集(投稿者)

ぼのぼの様

postback概念についてのご説明からいただきましてありがとうございます。
基本概念から学習する必要がありますね・・(汗
結局のところ、一つのフォームにて実装する方針となりました。

つまり、親フォームのみで進める形なので、framesetは使用しない方向です。
茨の道を回避しました(笑

色々とご指導頂き誠にありがとうございます。

いしだ様

メニューを押されたらメイン部ののコンテンツを別のものに差し替えたいという話でした。(画面遷移)
説明が悪く伝わりきらなくて申し訳ありません。
結局のところ、framesetを使用しない方向に持っていけましたので上記の問題は解決といったところです。(次の段階の問題が発生していますが・・・。)



引用返信 編集キー/
■7357 / inTopicNo.16)  Re[11]: ASP.NET にて画面分割
□投稿者/ osada (7回)-(2007/09/04(Tue) 15:34:09)
2007/09/04(Tue) 15:34:54 編集(投稿者)
皆様色々とアドバイスをいただきましてありがとうございます。

一難さってまた一難ということで次のトピックを投稿させていただきます。


+-----------------------------------------+
+           品目情報照会SYSTEM            +
+---+-------------------------------------+
+ t |                                     |
+ r |                  |------|           |
+ e |                  |ボタン|           |
+ e |                  |------|           |
+ v |                                     |
+ i |                                     |
+ e |            ---------                |
+ w |            |textbox|                |
+   |            ---------                |
+   |                                     |
+   |                                     |
+-----------------------------------------+

上記のイメージは一つのaspxファイルに
 Treeviewコントロール
 テキストボックスコントロール
 ボタンコントロール
  の3つのコントロールがあります。
  
このフォームのPageLoad時としてはTreeviewコントロールにはSelectionsという名前の項目が一つのみ格納されている状態です。

◆質問の内容です。
 @ボタンが押下された時のイベントで、テキストボックスに格納された情報を元にoracleデータベースからTreeviewコントロールに対し、値を格納する。
 A値格納後、Treeviewコントロールは展開された状態で、表示されている。 

◆テキストボックス格納内容
 TEST
 
上記の具体的なビジネスロジックはどのような形になりますでしょうか?
言語はVB.NETです。のでaspx.vbに記述するコードとなります。


参考になるような情報でも構いませんので、どうか宜しくお願い致します。

</pre></pre>

引用返信 編集キー/
■7358 / inTopicNo.17)  Re[12]: ASP.NET にて画面分割
□投稿者/ いしだ (41回)-(2007/09/04(Tue) 16:07:00)
いしだ さんの Web サイト
> 上記の具体的なビジネスロジックはどのような形になりますでしょうか?
> 言語はVB.NETです。のでaspx.vbに記述するコードとなります。

VS2005のデザイナ画面でボタンをダブルクリックして作成されるボタンイベント
にOracleへ値を格納するロジックを書けば良いと思います。
接続には、ODP.NETを使うのが良いんじゃないでしょうか?
TreeViewはASP.NETのViewStateの機能で、何もせずとも展開されたままになって
いると思います。
引用返信 編集キー/
■7360 / inTopicNo.18)  Re[12]: ASP.NET にて画面分割
□投稿者/ ぼのぼの (93回)-(2007/09/04(Tue) 16:11:35)
No7357 (osada さん) に返信
あれ?
TreeViewはメニューなんではないのですか?
メイン部での操作によって、同じ画面内でメニュー項目が変わるのですか?
「別画面に移動⇒別画面では違うメニューが表示される」だったらわかりますけど。

てゆーか、中身の処理よりも、
ヘッダ部とメニュー部を、複数の画面でどう共用するかを決めるのが先なのでは?
各画面にコピペで実装する方法、
マスタページを使う方法、ユーザコントロールを使う方法、

どの方法を使うかによってメニュー部に配置したコントロールへの
アクセス方法も変わってきます。
引用返信 編集キー/
■7417 / inTopicNo.19)  Re[12]: ASP.NET にて画面分割
□投稿者/ ひろ (20回)-(2007/09/05(Wed) 14:22:09)
No7357 (osada さん) に返信

> 上記の具体的なビジネスロジックはどのような形になりますでしょうか?

もし、これが

具体的なソースコードをアップしてほしい

の意味だったら、「自分で考えてください」ですね。

だって、これ osada さんの「仕事」でしょ?
「調査」も「仕事」の内ですよね。

まず、「ASP.NETの動作の仕組み」を良く理解してください。
そして、イベントがどの順序で実行されるかよく考えてください。

データベース(Oracle)へのアクセス方法の例は(OleDB でも ODP でも ODBC でも)いっぱいあります。
TreeView コントロールを使用すると決めたのであれば、MSDN を読めば使い方も判るはずです。

調査を人任せにすると何も身に付きません。
ごちゃごちゃ考える前に、ご自分でサンプルを山ほど作成してみてください。
失敗することがいい勉強になるはずです。

引用返信 編集キー/
■7464 / inTopicNo.20)  Re[13]: ASP.NET にて画面分割
 
□投稿者/ osada (8回)-(2007/09/06(Thu) 11:16:07)
いしだ様
ぼのぼの様
ひろ様

コメント頂きありがとうございます。

ぼのぼの様、
>ヘッダ部とメニュー部を、複数の画面でどう共用するかを決めるのが先なのでは?
おっしゃるとおりです。
まだ、確定しておりませんがユーザーコントロール化せずにコピペで実装すると思われます。

ひろ様
確かにおっしゃる通りです。
「調査」も仕事のうちだと認識はしております。

ただ自分で考えることを止めているわけではありません。
期限が迫っているため私自身どうしていいかわからなくこのような質問の投げ方となってしまいました。
以後は気をつけます。

ご指摘くださりありがとうございます。

皆様、本当にありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -