【问题标题】:New line a single label used in multiple if statements换行 多个 if 语句中使用的单个标签
【发布时间】:2016-01-25 12:32:51
【问题描述】:

我正在尝试找出在 C# ASP.net 中的 5 种不同 if 语句中使用的单个标签创建新行的方法。标签为每个未填写的文本框提供错误消息,我试图将所有错误消息放在自己的单独行上。这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class frmPersonnel : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {

  }
  protected void btnSubmit_Click(object sender, EventArgs e)
  {
    bool txtFieldError = false;
    lblError.Text = "";
    txtFirstName.BackColor = System.Drawing.Color.White;
    txtLastName.BackColor = System.Drawing.Color.White;
    txtPayRate.BackColor = System.Drawing.Color.White;
    txtStartDate.BackColor = System.Drawing.Color.White;
    txtEndDate.BackColor = System.Drawing.Color.White;

    if (txtFirstName.Text.Trim() == "")
    {
        txtFieldError = true;
        lblError.Text = lblError.Text + "Must enter first name";
        txtFirstName.BackColor= System.Drawing.Color.Yellow;            
    }

    if (txtLastName.Text.Trim() == "")
    {
        txtFieldError = true;
        lblError.Text = lblError.Text + "Must enter Last name";
        txtLastName.BackColor = System.Drawing.Color.Yellow;
    }

    if (txtPayRate.Text.Trim() == "")
    {
        txtFieldError = true;
        lblError.Text = lblError.Text + "Must enter pay rate";
        txtPayRate.BackColor = System.Drawing.Color.Yellow;
    }

    if (txtStartDate.Text.Trim() == "")
    {
        txtFieldError = true;
        lblError.Text = lblError.Text + "Must enter start date";
        txtStartDate.BackColor = System.Drawing.Color.Yellow;
    }

    if (txtEndDate.Text.Trim() == "")
    {
        txtFieldError = true;
        lblError.Text = lblError.Text + "Must enter end date";
        txtEndDate.BackColor = System.Drawing.Color.Yellow;
    }

    if (!txtFieldError)
    {
        DateTime strDate;
        DateTime nDate;

        strDate = DateTime.Parse(txtStartDate.Text);
        nDate = DateTime.Parse(txtEndDate.Text);

          if (DateTime.Compare(strDate, nDate) >= 0)
          {
           txtFieldError = true;
           lblError.Text = lblError.Text + "Must enter start date earlier than end date";
           txtStartDate.BackColor = System.Drawing.Color.Yellow;
           txtEndDate.BackColor = System.Drawing.Color.Yellow;
          }
    }

    if (!txtFieldError)
    {
        Session["txtFirstName"] = txtFirstName.Text;
        Session["txtLastName"] = txtLastName.Text;
        Session["txtPayRate"] = txtPayRate.Text;
        Session["txtStartDate"] = txtStartDate.Text;
        Session["txtEndDate"] = txtEndDate.Text;

        Response.Redirect("frmPersonnelVerified.aspx");
    }   

  }
}

如果我将所有字段留空,我会在一个连续的行中收到所有错误消息并换行到下一行。我希望每个错误都有自己的行。提前致谢!

【问题讨论】:

    标签: c# asp.net if-statement label newline


    【解决方案1】:

    你应该可以把 HTML 放在那里,比如:

    lblError.Text = lblError.Text + "<br> Must enter end date";
    

    【讨论】:

      【解决方案2】:

      在这种情况下,您的最佳选择是StringBuilder 来构建错误消息并最终在标签中显示错误。您可以通过以下方式实现:

       StringBuilder ErrorBuilder = new StringBuilder();
       ErrorBuilder.Append("Following are errors :");
              if (txtFirstName.Text.Trim() == "")
              {
                  txtFieldError = true;
                  ErrorBuilder.AppendLine("Must enter first name");
                  txtFirstName.BackColor = System.Drawing.Color.Yellow;
              }
      
              if (txtLastName.Text.Trim() == "")
              {
                  txtFieldError = true;
                  ErrorBuilder.AppendLine("Must enter Last name");
                  txtLastName.BackColor = System.Drawing.Color.Yellow;
              }
      
              // Rest of conditions here 
      
              lblError.Text = ErrorBuilder.ToString(); 
      

      对于连接字符串,best option is stringBuilder+= 当我们使用 ErrorBuilder.AppendLine 时,新行字符将自动附加到字符串中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-22
        • 2021-10-08
        相关资源
        最近更新 更多