我用c#生成了一个html页面。在HTML-Page中有很多元素。它们都有绝对位置
其中一个元素是表。该表表示一个保存双精度[]的对象。每个双精度值都是新行中的新单元格。
我遍历double[]并创建了我的表:
for (int i = 0; i < dbl.Length; i++)
{
htmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Tr);
htmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Td);
htmlTextWriter.Write(dbl[i]);
htmlTextWriter.RenderEndTag(); // td
htmlTextWriter.RenderEndTag(); // tr
}
如果这个表的元素太多了,它会交叉到这个表下面的元素,我必须对这个问题做出反应。
这意味着,我需要知道这个表有多少像素。
当然我知道我生成了多少单元格,我也知道BorderSize, Padding, Margin等。
但是有两个问题。首先,虽然我知道FontSize, FontFamily, FontWeight,但我不知道如何将这些信息包含在数学计算中。
第二,我认为每个浏览器的实际大小也是不同的。我创建了一个虚拟表,并意识到在一个屏幕高度,Opera和Firefox之间已经有一个单元格的差异。
所以我认为在c#中我只能近似实际高度?!
我的下一个想法是包括一个JavaScript到我的HTML。我没有JavaScript的经验,但我的方法是找到我的表和读出大小。然后遍历所有元素并找到所有重叠部分。
我的问题是:
- 我的考虑是正确的还是我遗漏了一些方面?
- 我的方法是正确的吗(在c#中我只会得到一个近似结果? !我不知道它是否真的可能的,我想做的)
- 还有其他我现在看不到的可能性吗?
提示:除javascript以外的其他脚本语言不适用于我的解决方案。我只在必要时使用JavaScript
我认为javascript是答案,而不是c#。http://api.jquery.com/height/
在c#中不能计算高度。