我已经遇到了很多关于如何格式化文本框中输入文字的线索,但我相信这个问题不同,因为我无法找到答案。
我需要在用户在rad数字文本框中输入值后格式化文本。用户需要输入介于.001和.999之间的数字。输入后,返回的值必须是百分比形式的数字,后跟百分号
即:如果用户输入.500,则该框必须返回50.000%
这在理论上似乎很简单,但我一直都会遇到这个错误
无法设置Text属性。输入字符串的格式不正确
这是我正在使用的代码。 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">
我建议你使用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;
祝好运 :)
尝试这样的事情:
double pct = rntb.Value.GetValueOrDefault();
rntb.Text = String.Format("{0:P3}.", pct);