- PR -

テキストファイルの高さを可変長にする方法

1
投稿者投稿内容
Nak
会議室デビュー日: 2005/03/11
投稿数: 18
投稿日時: 2005-05-03 11:46
いつも参考にさせて頂いています。 ASP.NET(VB.NET)でwebアプリケーションを製造開発中の者です。今回教えていただきたい事は、入力画面では備考欄のテキストボックス(MultiLine)はスクロールありで入力する。確認画面ではスクロールなしで備考の内容をテキストボックスにセットしたいという処理です。
文字数を数えて高さをセットするという方法しかないのでしょうか?ご存知の方、いらっしゃったら教えてください。
    
◆入力画面                ◆確認画面
備考                  備考 
a                a
b b
c c
d←スクロールして入力     d←スクロールなしで確認可能
Nak
会議室デビュー日: 2005/03/11
投稿数: 18
投稿日時: 2005-05-03 11:51
申し訳ありません。入力画面・確認画面が分かりにくいので再度、入力画面・確認画面のみ登録させて頂きます。
◆入力画面            
備考欄
--------------------------------
a                ↑
b |スクロールバー
c                ↓
--------------------------------
d                  ←スクロールして入力 

◆確認画面
備考欄     
--------------------------------
a               
b
c
d                  ←スクロールなしで確認可能
--------------------------------
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-05-04 07:22
 ASP.NETの場合、入力画面→確認画面という画面遷移は、一般的ではありません。入力画面が確認画面も兼ねます。そのための"ポストバック"です。


 んで、たとえばこの会議室の場合、「プレビュー」ボタンをクリックすると、そういうことができるわけですが、そのときはTextAreaを使わずに表示しています。そうすると、スクロールボックスは表示されません。
_________________
Nak
会議室デビュー日: 2005/03/11
投稿数: 18
投稿日時: 2005-05-04 12:56
Jittaさん、ありがとうございます。
確認用の別フォームを作成するしかないのですね・・・。
ありがとうございます。
確認画面を作成するとした場合、例えば、この画面のプレビューボタンを押下した場合に本文欄は可変になりますよね。長い文字を入力した場合は本文欄は長くなり、短い本文の場合は短い本文欄になりますよね。この処理はラベルでしているのでしょうか?それともDataListを使用しているのですか?また具体的にどのようにしているのでしょうか?
お忙しいところ、大変申し訳ありませんが、教えていただけたら幸いです。
ジョン吉
常連さん
会議室デビュー日: 2005/02/25
投稿数: 33
投稿日時: 2005-05-04 15:24
私は、確認用の別フォームは作成しないで作ってますよ。
入力はTextBox 確認は Literal を使っています

入力時 TextBox.Visible=True Literal.Visible=False
確認時 反対にする

表示時は Literal.Text = httpUtility.HtmlEncode(TextBox.Text.Replace(vbcrlf,"<BR>")) にして、
こんな感じで、改行コードを<BR>タグに置き換えています。

Label コントロールは改行コードをうまく表現できないので、Literal を使ってますが、
他にベターな方法があるのかな?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-05-04 15:35
引用:

ジョン吉さんの書き込み (2005-05-04 15:24) より:

Label コントロールは改行コードをうまく表現できないので、Literal を使ってますが、
他にベターな方法があるのかな?


うまく表示できないのではなく、ブラウザが解釈時に、‘空白’カテゴリなので、空白にしているのです。


引用:

表示時は
Literal.Text = httpUtility.HtmlEncode(TextBox.Text.Replace(vbcrlf,"<BR>"))
にして、こんな感じで、改行コードを<BR>タグに置き換えています。


これは丸ごと、もう一つ静的メソッドを持ったクラスを作っておくといいと思います。結局、あっちこっちで使うでしょうから。改行もですが、ダブルクォートも必要だったかと。

[ メッセージ編集済み 編集者: Jitta 編集日時 2005-05-04 16:22 ]
Nak
会議室デビュー日: 2005/03/11
投稿数: 18
投稿日時: 2005-05-04 23:30
返信遅れまして、申し訳ありません。
Jittaさん、ジョン吉さんのおかげでやりたいことができました。
本当に助かりました。どうもありがとうございました。
1

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