【问题标题】:How do you set text on Telerik Rad Numeric Textbox如何在 Telerik Rad 数字文本框中设置文本
【发布时间】:2013-07-29 20:46:11
【问题描述】:

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

用户在 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">

【问题讨论】:

  • Telerik 控件上有一个选项可以将 Type 设置为“Percent”,您可以设置 MaxValue
  • 你知道是否可以使用 JS 来做这件事吗? Type to Percent 已经在 ASP 部分下的代码中。问题是用户将输入一个从 .001 到 .999 的值
  • 现在不要,但是为什么用户输入的值是 0.500 而你必须将其转换为 50.000%,他为什么不输入 50.000 的值?
  • 我不确定,这是用户要求的。这对我来说也没有多大意义

标签: c# telerik


【解决方案1】:

我建议你使用RadMaskedTextBox

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

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

例如

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

所以,你必须转换喜欢

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

编辑

你可以改变和测试这个方法,

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

祝你好运:)

【讨论】:

  • 这几乎可以工作。我相信掩码会阻止该值返回为“87.000%”。返回的是 .87_
  • 是的,.87_ 是我测试的结果,掩码只是将其保持为该格式,这可能表明没有(简单的)解决方法
【解决方案2】:

试试这样的:

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

【讨论】:

    猜你喜欢
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    相关资源
    最近更新 更多