0

我目前正在为网站实施 RSS 馈送控件。我计划使用转发器控件允许在主页上显示 10 个项目的限制。

我的问题是如何防止控件的高度超过某个尺寸?我无法保证每个 RSS 提要项将提供多少内容。

我考虑过的一个选项是将每个项目的内容量限制为内容的子字符串,但这仍然提供了一种通用方法。

有没有办法确定控件在服务器端为每个控件渲染的页面向下多远,并在达到限制后放弃进一步绑定?或者是更好的方法总是呈现 10 个项目,然后在页面加载时使用 javascript 检查每个项目占用多少空间作为运行总数并在限制后隐藏任何内容?

谢谢,

布赖恩。

4

4 回答 4

3

在控件的 Header 和 Footer 模板中添加一个 div 标签(或其他适当的块级元素,因为您可能已经在使用类似“table”的东西),并使用 css 设置该元素的高度和溢出样式。

于 2009-07-09T15:48:25.630 回答
0

无法判断服务器端的高度。所有浏览器呈现的东西都略有不同。正如您已经建议的那样,您最好的选择是使用 javascript。问题是为什么高度如此重要。我问是因为通常网页的高度会增加,并且用户很好理解并且他们习惯于使用垂直滚动条。在 Web 环境中,水平滚动条看起来很凌乱且反直觉。

于 2009-07-09T15:47:45.193 回答
0

我肯定会选择两者中的 javascript 选项;其他任何事情都会太麻烦(我能想到的解决方案将涉及实际跟踪特定字体的每个字符的高度和宽度,并手动执行大量逐字符计算)但是另一种解决方案是查看包含溢出的 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 回答