【问题标题】:Trouble displaying an error when custom value is entered in a textbox在文本框中输入自定义值时无法显示错误
【发布时间】:2013-06-06 01:47:08
【问题描述】:

我在 Visual Studio 2012 中工作,我在尝试通过标签为我在多年期间创建的文本框显示简单的错误消息时遇到了麻烦。例如,如果用户在 txtYears 文本框中输入“dfasdfsa”,则会显示错误“年份必须是数值”。为了更清楚起见,我将提供 ID 的含义。

txtPrincliple = Priciple amount for a loan
txtYears = duration of the loan in years
lblResult = Result to the button click and the solution 
rblYears = radiobuttonList for duration in years
MonthlyPayment() = is a created method that returns the Monthly payment from provide input

  protected void Button1_Click(object sender, EventArgs e)
   {
    bool error = false;
    //Display Error if non numeric is entered
    if (!double.TryParse(txtPrinciple.Text, out principle))
    {
        error = true;
        lblResult.Text = "The principle must be a numeric value!";
    }

    //Get the values
    if (rblYears.SelectedIndex == 0)
        years = 15;
    else if (rblYears.SelectedIndex == 1)
        years = 30;
    else
        double.TryParse(txtYears.Text, out years);
    //Display Error if custom duration is entered
    if (!double.TryParse(txtYears.Text, out years))
    {
        error = true;
        lblResult.Text = "The years must be a numeric value!";
    }
    //Get interest rate value
    double.TryParse(ddlInterestRate.SelectedValue, out interest);
    //Output the Monthly Payment if no errors
    if (!error)
    {
        lblResult.Text = string.Format("Your total monthly payment is {0}{1:0.00}",   "$", MonthlyPayment());
    }
 }

【问题讨论】:

  • 你的问题是什么?
  • 我正在尝试使用 lblResult 显示 textYears 的简单错误消息。当用户从 rblYears 中选择 15 年或 30 年时,我似乎无法让错误消息起作用,它显示“年份必须是数值!”我希望它进行计算。

标签: c# visual-studio-2010 visual-studio visual-studio-2012 master-pages


【解决方案1】:

在我看来,问题似乎来自这样一个事实,即即使用户从 RBL 中选择了某些内容,您也会进行错误验证。我不完全确定我理解了这个问题,但不是很清楚。

如果你改变它应该可以工作

//Get the values
    if (rblYears.SelectedIndex == 0)
        years = 15;
    else if (rblYears.SelectedIndex == 1)
        years = 30;
    else
    {
        //Display Error if custom duration is entered
        if (!double.TryParse(txtYears.Text, out years))
        {
            error = true;
            lblResult.Text = "The years must be a numeric value!";
        }
    }

我还删除了多余的第一个 TryParse(因为您在验证时这样做了)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多