0

現在、Web サイトの RSS フィーダー コントロールを実装しています。リピーター コントロールを使用して、ホームページに 10 アイテムの制限を表示できるようにする予定です。

私の質問は、コントロールの高さが特定の寸法を超えないようにするにはどうすればよいですか? RSS フィード アイテムごとに提供されるコンテンツの量を保証することはできません。

私が検討したオプションの 1 つは、アイテムごとのコンテンツの量をコンテンツの部分文字列として制限することですが、これはまだ一般的なアプローチです。

コントロールがサーバー側のコントロールごとにレンダリングしたページのどこまでを判断し、制限に達したらそれ以上のバインディングを放棄する方法はありますか? または、常に10個のアイテムをレンダリングしてから、ページの読み込み時にjavascriptで各アイテムが実行中の合計としてどれだけのスペースを占有し、制限後に何かを非表示にするより良いアプローチですか?

ありがとう、

ブライアン。

4

4 に答える 4

3

コントロールのヘッダー テンプレートとフッター テンプレートに div タグ (または、既に「テーブル」などを使用している場合は、他の適切なブロック レベル要素) を追加し、css を使用してこの要素の高さとオーバーフローをスタイルします。

于 2009-07-09T15:48:25.630 に答える
0

サーバー側で高さがどうなるかを知ることは不可能です。すべてのブラウザは、物事をわずかに異なる方法でレンダリングします。あなたがすでに提案したように、JavaScriptを使用するのが最善の策です。問題は、なぜ高さがそれほど重要なのかということです。私が質問するのは、通常、Web ページの高さが増加することをユーザーはよく理解しており、垂直スクロールバーの使用に慣れているためです。水平スクロールバーは、Web 環境では乱雑で直感に反するように見えます。

于 2009-07-09T15:47:45.193 に答える
0

私は間違いなく2つのうちjavascriptオプションを選びます。他のものは面倒すぎるでしょう(頭のてっぺんから考えることができる解決策は、特定のフォントのすべての文字の高さと幅を実際に追跡し、手動で大量の文字ごとの計算を行うことを含みます)が、別の解決策は、overflow: hidden を含む div を調べることです。

于 2009-07-09T15:49:42.630 に答える
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 に最適なものに応じて、高さを微調整する必要があります。

于 2009-08-15T09:20:06.450 に答える