【发布时间】:2014-07-08 04:39:45
【问题描述】:
我将Textbox 添加到.ascx 控制页面,如下所示:
<asp:TextBox id="txtDescription" runat="server" Width="500" TextMode="MultiLine" Rows="2"></asp:TextBox>
第一次加载时会显示如下内容(包括开头的 4 个空格):
Description goes here
简单地说,它是一个有 2 行的 Multiline Textbox。但是,每当我们对服务器执行Postback 时,当页面重新加载时,我们会得到:
Description goes here
另一个Postback。
Description goes here
等等。基本上,每次在Postback 之后刷新页面时,都会在文本框的开头添加 4 个空格。在某些页面上,这不是问题,但是,如果用户在Gridview 或其他一些Control 中输入相当多的数据,Textbox 的内容最终可能会分流 20 个左右的字符向右,有时超出Textbox 的范围。
简单地说,这是我们公司的一个问题,因为它发生在我们所有的页面上。我们的一位客户多次通过“...您能在某个时候对文本框开头的空格做些什么吗?”
现在,我们采用的临时修复方法是在 PageLoad 函数中使用以下代码,但是,我们仍然在 Textbox 的开头留有 4 个空格。在 100 个 .ascx 和 .aspx 控件/页面中推广它并不是真正的解决方案。
if (IsPostBack)
txtDescription.Text = txtDescription.Text;
现在最大的问题是,有谁知道如何删除这些神秘的 4 个空格,这些空格不断添加到 Multiline Textbox 的开头?
【问题讨论】:
-
除了您最后提到的 hack,您通常如何填充此文本框的文本?
-
您在此文本框中从哪里输入值?
-
您可以使用 Trim 功能删除空格,但我会先找到空格的来源。就像以前添加 cmets 的人一样,我怀疑当您加载文本框时这些空格被放在那里。
-
@Dan-o & Jalpesh Vadgama - 我们几乎所有的文本都是通过 postgres 连接从数据库中的字符串加载的,通常通过 DataReader 访问。在某些情况下,我们的应用程序没有使用默认值初始化多行文本框,但会出现同样的问题 - 在开始时添加了 4 个空格。普通文本框(单行)不受影响。
-
@CraigMoore - 就是这样 - 我们无法找出这些空间的来源。使用 Trim() 似乎删除了除前 4 个空格之外的所有空格。