2009-07-09 21 views
0

私は現在、ウェブサイトのRSSフィーダコントロールを実装しています。私はリピータコントロールを使ってホームページに10項目の制限を表示することを計画しています。ASP .Netリピータ制御出力の高さを制御する

私の質問は、ある次元を超えるコントロールの高さをどうやって防ぐのですか? RSSフィード項目ごとにどれくらいのコンテンツが提供されるかは保証できません。

私が検討した1つの選択肢は、コンテンツの部分文字列として項目あたりのコンテンツの量を制限することですが、これはまだ一般的なアプローチを提供しています。

コントロールがサーバー側でコントロールごとにレンダリングされたページの深さを判断し、制限に達した後でさらにバインドを放棄する方法はありますか?それとも、10項目を常にレンダリングして、JavaScriptでページの負荷をチェックする方が良いですか?各項目がどれほど多くの部屋を占有していて、限界を超えて隠れるか?

ありがとう、

ブライアン。

答えて

3

コントロールのヘッダーとフッターのテンプレートにdivタグ(または他の適切なブロックレベルの要素(既に 'table'などのようなものを使用している可能性があるため)を追加し、CSSの高さとオーバーフローをスタイル設定する素子。

+0

+1;ボーナスポイントの場合、オーバーフロープロパティを使用してdivスクロールを内部的に行います。 –

+0

これは実際にコンテンツをオフにするだけではありませんか?私はアイテムの内容の半分を見ることやスクロールバーを導入することを避けるために探しています。 –

0

サーバー側で何が起きようとしているのか分かりません。すべてのブラウザは、物を少し違った形でレンダリングします。すでに提案したように、あなたの最善の策はjavascriptを使うことです。問題はなぜ高さが重要なのかです。通常はウェブページの高さが高くなり、ユーザーがよく理解していて、それらが垂直スクロールバーの使用に慣れているからです。水平スクロールバーは、Web環境では使いにくく、直感的です。

+0

サイトに複数のコンテンツ列があるため、高さが重要です。他の列は固定高さですが、動的コンテンツの列はホームページの高さに対して固定されており、コンテナの高さに近い高さまで内容を表示して、レイアウトを固定グリッドスタイルの配置に保つ必要があります。 –

0

私は間違いなく、2つのうちのjavascriptオプションに行きます。他のものはあまりにも扱いにくいでしょう(私の頭の上から外すと考えられる解決策は、特定のフォントのすべての文字の高さと幅を実際に把握し、手作業でcharの計算をたくさん行います)。別の解決策は、オーバーフローして含むdivのを見て、次のようになります。

+0

隠されたオーバーフローは、コンテンツを特定の高さで分割しないでしょうか?私は半分の記事を望んでいないし、私はホームページのコンテンツにスクロールバーを表示したくない。 –

0

を隠された、私はそれがいつかバックでした - あなたは以下のコードを使用して、スクロール可能なリピータ自体(限り覚えておくように動作するはずです)かもしれない:

するたびにグリッドをデータバインディングする場合は、次のコードを使用して、レコードの数が保持するページサイズを超えているかどうかを判断します。

例:ページサイズを10に設定すると、

if (ds.Tables[0].Rows.Count > 10) 
    myRepeater.Attributes["Style"] = "OVERFLOW-Y:auto;HEIGHT:200px;"; 
else 
    myRepeater.Attributes["Style"] = "OVERFLOW-Y:auto;"; 

UIに最も適した高さに調整する必要があります。

関連する問題