1

我遇到了很多关于如何格式化输入框中的文本的主题,但我相信这个问题足够不同,可以单独提出,因为我找不到答案。

用户在 rad 数字文本框中输入值后,我需要格式化文本。用户需要输入介于 0.001 和 0.999 之间的数字。此输入后,返回值必须是百分比形式的数字,后跟一个百分号

即:如果用户输入 .500,则该框必须返回 50.000%

这在理论上似乎很简单,但我不断收到此错误

无法设置文本属性。输入字符串的格式不正确

这是我正在使用的代码。C#

double pct = rntb.Value.GetValueOrDefault();
string result = pct.ToString("P3");
rntb.Text = result;

ASP

<telerik:RadNumericTextBox ID="rntb" runat="server" Type="Percent" Value="1" OnTextChanged="rntb_TextChanged">

4

2 回答 2

0

尝试这样的事情:

double pct = rntb.Value.GetValueOrDefault();
rntb.Text = String.Format("{0:P3}.", pct);
于 2013-08-02T17:45:14.100 回答
0

我建议你使用RadMaskedTextBox

  <telerik:RadMaskedTextBox ID="RadMaskedTextBox1" runat="server" Mask=".###"
            Width="100%" PromptChar="_" />

使用 获取您的值RadMaskedTextBox1.Text;,它将返回不带(dot) RadMaskedTextBox的文本(仅限数字)。.

例如

.001 => 001  
.500 => 500  
.999 => 999

所以,你必须转换喜欢

string yourPercentage = (Double.Parse(RadMaskedTextBox1.Text)/ 10).ToString() + "%";

编辑

您可以更改和测试此方法,

            RadMaskedTextBox1.Text;
            RadMaskedTextBox1.TextWithLiterals;
            RadMaskedTextBox1.TextWithPrompt;
            RadMaskedTextBox1.TextWithPromptAndLiterals;

祝你好运 :)

于 2013-07-30T08:08:00.720 回答