首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绑定到Gridview的ASP.Net删除了一些空格(空格字符)

绑定到Gridview的ASP.Net删除了一些空格(空格字符)
EN

Stack Overflow用户
提问于 2009-05-29 01:50:54
回答 1查看 10.8K关注 0票数 2

我正在从Oracle数据库中检索数据,并将其绑定到一个网格视图控件。

我注意到,在某些情况下,当列包含单引号或双引号时,空格或空白字符会被去掉。

Oracle中字段中的一些数据示例:

尽快被淘汰",

当被取回时,它就变成了.

尽快被淘汰",

还有另一个..。

它的测试记录“DDD”FFF

它变成了

它的测试记录“DDD”FFF

我不知道为什么会发生这种事...

有什么想法吗?

我认为即使在这里,空间也在被修剪。在我的示例中,第一个字段是:

要尽快淘汰“”

单引号后面实际上有两个空格,但这里只显示一个空格。奇怪的是。

单引号空格双引号-->‘“

我认为引号或单引号后的额外空格正在被asp.net删除??

我还发现,当我编辑我的网格视图时,额外的空白会被保留,但当我回到原始视图时,空白就消失了。

换句话说这个问题..

如何在显示数据时保留网格视图中的WhiteSpace?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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:

代码语言:javascript
复制
<asp:GridView ID="gbGridWithSpaces" AutoGenerateColumns="false" runat="server" 
    onrowdatabound="gbGridWithSpaces_RowDataBound">
    <Columns>
        <asp:BoundField DataField="ItemWithSpaces" HeaderText="Item With Spaces" />
    </Columns>
</asp:GridView>

在您的后台代码中,您可以处理事件来重新格式化输出文本。例如:

代码语言:javascript
复制
protected void gbGridWithSpaces_RowDataBound(object sender, GridViewRowEventArgs e)
{
    foreach (TableCell cell in e.Row.Cells)
    {
        cell.Text = cell.Text.Replace(" ", "&nbsp;");
    }
}

这将有效地将所有空格替换为&nbsp;并保留它们,即使呈现到浏览器上也是如此。请记住,您的数据也会以这种方式返回,因此,如果您计划将此信息传递回持久存储,则需要在服务器上处理此问题。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/924058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档