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

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

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

ブラウザのサイズ変更による改行について

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

■84526 / inTopicNo.1)  ブラウザのサイズ変更による改行について
  
□投稿者/ ruru (30回)-(2017/07/12(Wed) 16:16:25)

分類:[ASP.NET (VB)] 

お世話になります。ご教示ください。

開発環境 Microsoft Visual Web Developer 2010
ブラウザ IE9以上
開発言語 ASP.NET(VB)


◆目的
ブラウザのサイズを縮めた時、テーブルタグ内の、文字が入力された箇所を縮めたサイズに合わせたい(改行含む)
ただし挙動はブラウザの動作に準ずる 

◆現在
テーブルタグ内は、1行のものはテキスト、複数行のものはテキストエリアを指定しています。


◆質問
自動で改行をしたいと探っていたところ、下記のようなソースなら希望した動きになる事がわかりました。

<table border="1">
<tr>
<td>
あいうえおかきくけこさしすせそたちつてと
</td>
</tr>
</table>



その為、下記のように修正したいと考えましたが、HTMLはASP.NETで作っているため
どのように修正したらよいかがわかりません。


【修正前】

○aspx
<td>
<input type="text" id="txtEmp" value="あいうえお" runat="server" />
</td>

○vb.net

Dim textControl As HtmlInputText
textControl = CType(e.Item.FindControl("txtEmp"), HtmlInputText)
textControl.Value = "あいうえお"


【修正後】
○aspx
<td runat="server" >
あいうえお
</td>

○vb.net

???


このように、<??>タグの○○属性に値を付与、ではない場合、
どのように値を渡せばよいのでしょうか。

また、別の問題としてこの場合の検索ワードが思い浮かびませんでした。
もしよければこちらもよろしくお願い致します。
引用返信 編集キー/
■84528 / inTopicNo.2)  Re[1]: ブラウザのサイズ変更による改行について
□投稿者/ WebSurfer (1262回)-(2017/07/12(Wed) 17:12:31)
No84526 (ruru さん) に返信

> 自動で改行をしたいと探っていたところ、下記のようなソースなら希望した動きになる事がわかりました。
>
> <table border="1">
> <tr>
> <td>
> あいうえおかきくけこさしすせそたちつてと
> </td>
> </tr>
> </table>

その形に html ソースをレンダリングすれば万事 OK であれば何とでもできますが、多分違いますよね?

HtmlInputText を使うということは、html としては input type="text"、即ちポストバックした時にその value 属性に設定された文字列がサーバーに送信されますが、そういうことを期待しているとすると何ともなりませんけど。

また、HtmlInputText にサーバーコントロールとしての動き(ViewState とか)も期待しているとなると、ますます何ともなりません。

そのあたり、理解されてますか?
引用返信 編集キー/
■84529 / inTopicNo.3)  Re[2]: ブラウザのサイズ変更による改行について
□投稿者/ ruru (31回)-(2017/07/12(Wed) 18:09:11)
WebSurfer 様
お返事ありがとうございます。


 ※ 私の質問の仕方が悪かったため、私しか知らない情報を記載するのがもれておりました。
   深く深く反省いたします。


今回textやtextareaを使っておりますが、使用用途は入力ではなく、表示です(理解不足の為使ってしまっていました)
その為、サーバに送信する用途はなく、サーバから受け取った文字列を表示する動作のみを期待しています。

従って、
>>その形に html ソースをレンダリングすれば万事 OK であれば何とでもできますが、多分違いますよね?
こちらは、万事OKという認識を持っております。

<td runat="server" >
あいうえお
</td>

↑の場合、tdタグの○○に△△を付与する、は以前ご教示いただいた方法で出来ますが、
あいうえおに該当する箇所というのがわからないです。
引用返信 編集キー/
■84530 / inTopicNo.4)  Re[3]: ブラウザのサイズ変更による改行について
□投稿者/ ruru (32回)-(2017/07/12(Wed) 18:28:37)
追加でわかった事を記載します。


aspx
<asp:Label ID="txtEmp" runat="server" Text="Label"></asp:Label>

vb
txtEmp.Text = "あいうえおかきくけこ"

と記載すれば

<span id="MainContent_txtEmp">あいうえおかきくけこ</span>

とレンダリングされることがわかりました。


しかし


<asp:Repeater ID="repeater1" runat="server">
<ItemTemplate>
<table>

<asp:Label ID="txtEmp" runat="server" Text="Label"></asp:Label> ←ここに追加

</table>
</ItemTemplate>
</asp:Repeater>



上記のRepeater内部に追加しても、vb上ではtxtEmpが現れないところで詰まっております。
ここはもうちょっと調査をがんばってみます。

引用返信 編集キー/
■84531 / inTopicNo.5)  Re[4]: ブラウザのサイズ変更による改行について
□投稿者/ WebSurfer (1263回)-(2017/07/12(Wed) 19:54:51)
No84530 (ruru さん) に返信

> 従って、
> >>その形に html ソースをレンダリングすれば万事 OK であれば何とでもできますが、多分違いますよね?
> こちらは、万事OKという認識を持っております。

ホントですか?

であれば、Table, TableRow, TableCell コントロールを使って、html にレンダリングされたとき望むよう
な形にできるはずです。

でも、後出しで Repeater とかでできてるので、それではダメなんじゃないかと想像してます。

局所的な質問だけでなく、全体のシナリオを含めて何がしたいのかも書いていただくようお願いします。

全体のシナリオを書いてもらえれば、質問にかいてあることは実現が困難 or 他にもっと良い方法がある
ような場合、「それはできない or そのやり方は適切ではないけど、やりたいことはこうすれば実現でき
る」というような代案も出てくるかもしれません。

想像で答えるのは疲れます。そのうち答える気力がなくなってきます。
引用返信 編集キー/
■84532 / inTopicNo.6)  Re[5]: ブラウザのサイズ変更による改行について
□投稿者/ ruru (33回)-(2017/07/12(Wed) 21:03:15)
WebSurfer 様
度々お返事ありがとうございます。

まだまだ質問の仕方が悪いようで、申し訳ございません。
技術的な事以外も学んでいきたいので、よければご指導お願い致します。


今回は、画面に存在する条件をキーとして、検索ボタンを押した際にDBに問い合わせ
結果を画面に表示するというページのお話です。
表示する内容は複数件存在する為Repeaterを使っております。

Repeater内にはtableでリストを構成しており、
その中でも一行でしか表示しないものは、textを使い、
複数行あるものに関しては、textareaを使いました。(ただし表示のみの為readonly です)

textには、cssでwidthを指定し
textareaの必須条件であるcolやrowsに関しては、DBから問い合わせた結果の文字型から
改行コードの数や文字数から取得して(あるいは計算して)あてはめていました。

これで完成としていたページを、修正して欲しいという依頼がきました。
ブラウザを縮小した時に、縮小したブラウザにあわせてテーブル内のテキストを自動で改行して欲しいという依頼です。


これらを満たすためにはどうしたらよいか考えた結果、

<table border="1">
<tr>
<td>
あいうえおかきくけこさしすせそたちつてと
</td>
</tr>
</table>

これならば自動的に変えてくれるので、textやtextareaより良いんじゃないかと思いました。
※調査中に、textやtextareaはinputする為のものだし表示なら使うべきではないかな?ともなんとなく思いました。

そこで実装方法がわからないのと、妥当性の不安があったのと
他の便利な実装方法が何かないかなあと掲示板を頼った次第です。


このような感じです。
引用返信 編集キー/
■84533 / inTopicNo.7)  Re[6]: ブラウザのサイズ変更による改行について
□投稿者/ WebSurfer (1264回)-(2017/07/12(Wed) 22:02:24)
No84532 (ruru さん) に返信

Repeater ではなく GridView を使ってますが、以下の記事の「制限しない場合」の方で
よさそうな気がします。

GridView に overflow 適用
http://surferonwww.info/BlogEngine/post/2015/11/10/apply-overflow-to-a-column-of-gridview.aspx

それがダメなら、具体的にどういうところがダメなのか書いてください。
引用返信 編集キー/
■84534 / inTopicNo.8)  Re[7]: ブラウザのサイズ変更による改行について
□投稿者/ ruru (34回)-(2017/07/13(Thu) 09:33:44)
WebSurfer様

ご回答ありがとうございます。
GridViewを使うことにより、望むように改行されてくれました。
(rowとcolが逆転していたり細部の違いはGridViewの使い方の問題なので、別途調査します)

質問に対する要望は満たせましたので、こちらは解決済といたします。
ありがとうございました。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ