【问题标题】:How to check textbox control value greater than zero?如何检查文本框控件值大于零?
【发布时间】:2016-08-04 15:05:13
【问题描述】:

我有一个总分的文本框。 我需要在另一个具有读取值的文本框上禁用验证。

我需要检查的条件是总分是否大于零并且为 null 或为空。这是代码。我尝试输入 if (!string.IsNullOrEmpty(txtTotalScore.Text))&& (txtTotalScore.Text>0) 它不起作用,因为 txtscore 是文本框控件并且 0 是整数。 我该如何解决这个问题?

TextBox myscore = fv.FindControl("txtTotalScore") as TextBox;
if (!string.IsNullOrEmpty(txtTotalScore.Text))                      
    RangeValidator rv = fv.FindControl("rngReading") as RangeValidator;
    rv.Enabled = false;
}

【问题讨论】:

    标签: c# asp.net validation


    【解决方案1】:

    为了将 TextBox 的内容与整数进行比较,您需要将内容解析为数字(即“42”= 42)。您可以通过使用Parse()TryParse() 方法然后将其结果与0 进行比较来做到这一点。

    if (!string.IsNullOrEmpty(txtTotalScore.Text))      
        // At this point, you know it isn't null
        var potentialValue = -1;
        // Parse the textbox and store the value in potentialValue
        Int32.TryParse(txtTotalScore.Text, out potentialValue);
        if(potentialValue > 0)
        {
              // Then disable your range validator
              RangeValidator rv = fv.FindControl("rngReading") as RangeValidator;
              rv.Enabled = false;
        }  
    }
    

    【讨论】:

      【解决方案2】:

      我只是将文本框的文本转换为int,然后进行肯定检查:

      TextBox myScore = fv.FindControl("txtTotalScore") as TextBox;
      try
      {
          int totalScore = Convert.ToInt32(myScore.Text);
          if (totalScore > 0)
          {
              RangeValidator rv = fv.FindControl("rngReading") as RangeValidator;
              rv.Enabled = false;
          }
      }
      catch(FormatException ex)
      {
          // Show error message stating that text should be a numeric value
      }
      

      【讨论】:

        猜你喜欢
        • 2010-11-13
        • 1970-01-01
        • 1970-01-01
        • 2016-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多