2011-11-10 1 views
0

ASP.NET 3.5では、コンテンツにテーブルの自動サイズを設定する(内部コントロールを表示するのに十分な最小サイズなど)方法を教えてください。Asp.Net - テーブルのコンテンツへのサイズ

私は、いくつかの行を持つテーブルを持っています。一部の行は必ずしも表示する必要はありません(たとえば、その行のすべてのコントロールが非表示の場合など)。私はそれらの行を隠す(またはサイズ= 0)、結果としてテーブルを小さくしたい。

答えて

0

正確な設定がわからない場合、ニーズに合わせて具体的な回答をするのは難しいです。ページに表の行が表示されている場合は、オフにしない限り、少なくとも1行を占めます。 1つの方法は、テーブル行をrunat = "server"に設定し、その中のコントロールが表示されていない場合、コードビハインドでvisible = "false"を設定することです。あなたのコードビハインドで

<tr id="tr" runat="server"> 
<td>Controls</td> 
</tr> 

if(ControlsNotShowing) 
    tr.Visible = false; 
+0

私はコントロールの可視性を手動でチェックせずにこれを行う簡単な方法があることを願っています。これは、通常のasp.net Webプロジェクト(VSのプロジェクトテンプレートの1つ)です。 – ace

+0

@aceテーブルセルや行内のコントロールの可視性を確認するために再帰関数を組み込むことができると確信しています。それ以外の場合は、クライアント側のオプションを参照する必要があります。 –

+0

はい、再帰関数が機能します。 「手動で」、私は可視性をチェックするためのコードを書く必要があることを意味しました。とにかく、私は "デスクトップアプリケーション"の世界(winforms、wpf)から来ているので、存在しないように見えるTableLayoutPanelのようなものを探していました。 – ace

0

あなたはより詳細な情報を提供する必要があるかもしれませんが、私はそれで刺してみましょう。

表の幅属性を指定しないと、テーブルの内容が自動的にサイズ変更されます。それは簡単な部分です。

行を表示したり非表示にしたりする方法については、詳細が必要です。あなたは、コードの後ろに/サーバ側から/非表示を表示しようとしている場合は、行にサーバーコントロールを作成し、Visibleプロパティを設定することができます

<tr runat="server" id="row1"> 
<td>Hi</td> 
</tr> 

をし、コードでは背後に、Visibleプロパティ

row1.Visible = false 
を設定します

クライアント側の行を非表示にする場合は、javascriptを使用できます。私はそれをあなたや別の質問に任せますが、javascriptを使って行を隠すと、削除された行のコンテンツが最も広い場合にテーブルのサイズが自動的に変更されます。