空格字符在HTML中是保留的,如果页面内容中两个单词之间有两个以上的空格字符,HTML只显示一个空格。默认情况下,它在 Spread for ASP.NET 的单元格中是相同的,因为 Spread for ASP.NET 使用 HTML 在客户端浏览器中呈现。有时我们真的需要保留空格字符以在单元格中显示,该怎么做?正如我们所知,在 HTML 中我们可以使用实体“”来代替空格字符,如果我们想在“A”和“B”之间显示两个空格,我们可以这样做:“A B”。Spread for ASP.NET 单元格是否可能呈现 HTML 标记?答案是肯定的,Spread for ASP.NET 单元格有一个属性“EncodeValue”,如果将其设置为 false,Spread for ASP.NET 会将单元格值呈现为 HTML 标记。代码是这样的:
FpSpread1.Sheets[0].RowCount = 4; FpSpread1.Sheets[0].Cells[1, 1].EncodeValue = false; FpSpread1.Sheets[0].Cells[1, 1].Value = "Hello<B>World</B>"; FpSpread1.Sheets[0].Rows[2].EncodeValue = false; FpSpread1.Sheets[0].Cells[2, 1].Value = "<a href='http://gcpowertools.com'>gcpowertools.com</a>"; FpSpread1.Sheets[0].Columns[2].EncodeValue = false; FpSpread1.Sheets[0].Cells[3, 2].Value = "Break here<BR>to anew line";
有关EncodeValue 属性的文档中有更多信息有时我们无法将 HTML 标记设置为单元格值,例如数据可能来自数据库,或者由最终用户输入,还有另一种方法可以做到。CSS3 有一个“ white-space ”属性,如果将它设置为“pre-wrap”,浏览器将保留空格字符。而 Spread for ASP.NET 使用 Table 来布局和渲染单元格,所以我们只需要为页眉中的 Table 元素设置“white-space”为“pre-wrap”,那么空格字符将保留在单元格中,代码如下:
table { white-space: pre-wrap; }