我目前正在为网站实施RSS馈送控件。我打算允许使用转发器控件在主页上显示10个项目的限制。
我的问题是如何防止控件的高度超过一定的尺寸?我无法保证每个RSS Feed项目将提供多少内容。
我考虑过的一个选项是将每个项目的内容量限制为内容的子字符串,但这仍然提供了一般方法。
有没有办法确定控件在服务器端的每个控件上呈现的页面距离,并在达到限制后放弃进一步绑定?或者是更好的方法总是渲染10个项目然后在页面加载检查javascript每个项目占用多少空间作为运行总计并隐藏限制后的任何内容?
谢谢,
布赖恩。
答案 0 :(得分:3)
在控件的Header和Footer模板中添加div标签(或其他适当的块级元素,因为您可能已经使用了'table'之类的东西),并使用css来设置此元素的高度和溢出的样式
答案 1 :(得分:0)
无法确定服务器端的高度。所有浏览器的呈现方式略有不同。你已经建议的最好的选择是使用javascript。问题是为什么高度如此重要。我问,因为通常网页的高度增长,并且用户很容易理解,并且它们习惯于使用垂直滚动条。在网络环境中,水平滚动条看起来很混乱,反直觉。
答案 2 :(得分:0)
我肯定会选择两者中的javascript选项;其他任何东西都太麻烦了(我能想到的解决方案实际上涉及实际跟踪特定字体的每个字符的高度和宽度,并通过字符计算手动执行大量的char)但是另一种解决方案是查看包含溢出的div:hidden
答案 3 :(得分:0)
我在某个时候做过 - 你可以使用下面的代码自己有一个可滚动的转发器(应该记住):
每当您对网格进行数据绑定时,请使用以下代码来确定记录的数量是否超出您要保留的页面大小:
示例:假设您希望将页面大小限制为10,那么
if (ds.Tables[0].Rows.Count > 10)
myRepeater.Attributes["Style"] = "OVERFLOW-Y:auto;HEIGHT:200px;";
else
myRepeater.Attributes["Style"] = "OVERFLOW-Y:auto;";
你必须根据最适合用户界面的内容调整高度。