如何在asp.net文本框中保留前导空格

时间:2013-05-21 10:32:54

标签: asp.net

我有一个文本框web控件,可以自动修剪其内容中的任何前导空格,因此当我得到文本时,它与用户最初编写的内容不同(如果他进入了领先的空间)

是否有办法禁用此功能

3 个答案:

答案 0 :(得分:1)

只有一种解决方案可以覆盖默认行为,即你编写一个javascript函数,用于指定用户输入隐藏字段的任何内容,然后在按钮或任何回发事件中捕获该隐藏字段的值你有

<asp:TextBox runat="server" ID="TextBox1" onkeydown="document.getElementById('HiddenField1').value += this.value" ></asp:TextBox>

问候

答案 1 :(得分:0)

您需要用&nbsp; html替换空格。

E.g

Dim TextWithSpaces As String = OriginalText.Replace(" ", "&nbsp;")

TextBox.Text = TextWithSpaces

答案 2 :(得分:0)

实际上可能还有另一种解决方法。 ASP.NET旨在替换U+0020space的Unicode代码点),但它不会对其他一些空格字符执行此操作,例如U+00A0 - no-break space。< / p>

我遇到了需要在RadTextBox的ASP.NET页面上保留需要保留的空格字符的问题(在保留空格时表现得像普通的ASP TextBox,这意味着我全部丢失了但是一个重复的空间。)

所以,如果你设置这样的文字:

txtName.Text = name.Replace(' ', '\u00A0');

你可以从文本框中获取文字:

name = txtName.Text.Replace('\u00A0', ' ');

对于用户来说,它看起来像文本框中有空格,ASP.NET不会删除这些类似空格的字符。

答案的灵感来自这个答案:What is the best invisible character can I use to replace &nbsp;?