我正在从Oracle数据库中检索数据,并将其绑定到一个网格视图控件。
我注意到,在某些情况下,当列包含单引号或双引号时,空格或空白字符会被去掉。
Oracle中字段中的一些数据示例:
尽快被淘汰",
当被取回时,它就变成了.
尽快被淘汰",
还有另一个..。
它的测试记录“DDD”FFF
它变成了
它的测试记录“DDD”FFF
我不知道为什么会发生这种事...
有什么想法吗?
我认为即使在这里,空间也在被修剪。在我的示例中,第一个字段是:
要尽快淘汰“”
单引号后面实际上有两个空格,但这里只显示一个空格。奇怪的是。
单引号空格双引号-->‘“
我认为引号或单引号后的额外空格正在被asp.net删除??
我还发现,当我编辑我的网格视图时,额外的空白会被保留,但当我回到原始视图时,空白就消失了。
换句话说这个问题..
如何在显示数据时保留网格视图中的WhiteSpace?
发布于 2009-05-29 02:12:56
这不是ASP.Net的事情,这是一个超文本标记语言解析的事情。如果您要创建一个Jane HTML页面,其中包含一个div标记,然后在开始标记和结束标记之间放置100个空格,那么所有这些空格都将被压缩为一个空格。
这是一个典型的网络问题。如果您真的想让所有内容都正确显示出来,那么在页面上显示它们之前,您将需要对任何空格进行HTML编码。
尝试用 替换所有的共享空间
这里有一篇文章更深入地解释了这一点:http://webdesign.about.com/od/beginningtutorials/f/blfaqwhitespace.htm
在评论中回答问题的:
如果您需要对网格的确切内容有很多控制,即使它是DataBound,您也可以简单地处理在绑定每一行之后触发的RowDataBound事件。
假设您有一个如下所示的GridView:
<asp:GridView ID="gbGridWithSpaces" AutoGenerateColumns="false" runat="server"
onrowdatabound="gbGridWithSpaces_RowDataBound">
<Columns>
<asp:BoundField DataField="ItemWithSpaces" HeaderText="Item With Spaces" />
</Columns>
</asp:GridView>在您的后台代码中,您可以处理事件来重新格式化输出文本。例如:
protected void gbGridWithSpaces_RowDataBound(object sender, GridViewRowEventArgs e)
{
foreach (TableCell cell in e.Row.Cells)
{
cell.Text = cell.Text.Replace(" ", " ");
}
}这将有效地将所有空格替换为 并保留它们,即使呈现到浏览器上也是如此。请记住,您的数据也会以这种方式返回,因此,如果您计划将此信息传递回持久存储,则需要在服务器上处理此问题。
https://stackoverflow.com/questions/924058
复制相似问题