2013-07-29 56 views
0

我遇到了很多关于如何格式化输入框中的文本的线程,但我相信这个问题不同,因此我无法找到它自己,因为我找不到一个答案。如何设置Telerik Rad数字文本框上的文本

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

即: 如果用户输入0.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"> 

+0

上有Telerik的控制选项来将类型设置为“百分比”,你可以设置的MaxValue –

+0

你知不知道是否有可能为此使用JS?类型百分比已经在ASP部分下的代码中。问题是,用户将输入一个值从.001到.999 – user2333685

+0

现在不要,但为什么用户输入一个值为.500,你必须将其转换为50.000%,为什么他没有输入一个值50.000? –

回答

0

我建议你使用RadMaskedTextBox

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

获取使用RadMaskedTextBox1.Text;你的价值,它会返回RadMaskedTextBox的文本(数只有)没有.(点)。

例如

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

所以,你必须转换喜欢

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

编辑

您可以更改和测试这种方法,

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

好运:)

+0

这几乎可行。我相信面具可以防止返回值为“87.000%”。返回的内容是.87_ – user2333685

+0

你测试过了吗? – zey

+0

是的,.87_是我测试的结果,面具只是保持它的格式,这可能说明没有(简单的)方法围绕这个 – user2333685

0

尝试是这样的:

double pct = rntb.Value.GetValueOrDefault(); 
rntb.Text = String.Format("{0:P3}.", pct); 
相关问题