C# 如何让标签显示错误

C# 如何让标签显示错误,c#,if-statement,C#,If Statement,可能重复: 现在我有5个文本框,当其中任何一个字段留空时,它会将框变为黄色,并在我的标签中输出名为“lblError”的语句。以下错误“”请输入有效数据!“这列在我的catch语句中。我希望lblError输出我为每个文本框列出的文本语句。因此,如果名字和姓氏为空,lblError将输出这两条消息。我是C#新手,因此对我来说有点困惑 public partial class frmPersonnel : System.Web.UI.Page { protected void btnSu

可能重复:

现在我有5个文本框,当其中任何一个字段留空时,它会将框变为黄色,并在我的标签中输出名为“lblError”的语句。以下错误“”请输入有效数据!“这列在我的catch语句中。我希望lblError输出我为每个文本框列出的文本语句。因此,如果名字和姓氏为空,lblError将输出这两条消息。我是C#新手,因此对我来说有点困惑

public partial class frmPersonnel : System.Web.UI.Page
{
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        try
        {
            DateTime dt1;
            DateTime dt2;

            if (txtFirstName.Text == "")
            {
                txtFirstName.BackColor = System.Drawing.Color.Yellow;
                lblError.Text = "Please enter first name";
            }
            if (txtLastName.Text == "")
            {
                txtLastName.BackColor = System.Drawing.Color.Yellow;
                lblError.Text = "Please enter last name!";
            }
            if (txtPayRate.Text == "")
            {
                txtPayRate.BackColor = System.Drawing.Color.Yellow;
                lblError.Text = "Please enter pay rate!";
            }
            if (txtStartDate.Text == "")
            {
                txtStartDate.BackColor = System.Drawing.Color.Yellow;
                lblError.Text = "Please enter start date!";
            }
            if (txtEndDate.Text == "")
            {
                txtEndDate.BackColor = System.Drawing.Color.Yellow;
                lblError.Text = "Please enter end date!";
            }
            dt1 = DateTime.Parse(txtStartDate.Text);
            dt2 = DateTime.Parse(txtEndDate.Text);


            if (DateTime.Compare(dt1, dt2) > 0)
            {
                txtStartDate.BackColor = System.Drawing.Color.Yellow;
                txtEndDate.BackColor = System.Drawing.Color.Yellow;
                lblError.Text = "Start Date must not be greater than End Date.";
            }

            else
            {
                Session["txtFirstName"] = txtFirstName.Text;
                Session["txtLastName"] = txtLastName.Text;
                Session["txtPayRate"] = txtPayRate.Text;
                Session["txtStartDate"] = txtStartDate.Text;
                Session["txtEndDate"] = txtEndDate.Text;
                Server.Transfer("frmPersonalVerified.aspx");
            }
        }
        catch (Exception)
        {
            lblError.Text = "Please enter valid data!";
        }
    }
}

您需要连接错误消息-如果发现错误,请连接并添加新行,如果没有,请使用新的错误消息:

if(string.IsNullOrWhiteSpace(lblError.Text))
{
   lblError.Text = "Please enter last name!";
}
else
{
   lblError.Text += "Please enter last name!" + Environment.NewLine;
}
以上只是其中一项检查的示例


我建议将公共逻辑提取到它自己的方法中并重用它(例如,只需将错误消息和要检查的控件作为参数传递)。

您需要连接错误消息-如果发现错误,连接并添加新行,如果没有,只需使用新的错误消息:

if(string.IsNullOrWhiteSpace(lblError.Text))
{
   lblError.Text = "Please enter last name!";
}
else
{
   lblError.Text += "Please enter last name!" + Environment.NewLine;
}
以上只是其中一项检查的示例

我建议将公共逻辑提取到自己的方法中并重用它(例如,只需将错误消息和要检查的控件作为参数传递即可)。

您可以这样做

添加+=例如
lblError.Text+=“请输入名字”
这将附加到文本框中已有的文本

public partial class frmPersonnel : System.Web.UI.Page
{
  protected void btnSubmit_Click(object sender, EventArgs e)
  {
    try
    {
        DateTime dt1;
        DateTime dt2;

        // Add this 
        lblError.Text = "";

        if (txtFirstName.Text == "")
        {
            txtFirstName.BackColor = System.Drawing.Color.Yellow;
            lblError.Text += "Please enter first name ";
        }
        if (txtLastName.Text == "")
        {
            txtLastName.BackColor = System.Drawing.Color.Yellow;
            lblError.Text += "Please enter last name! ";
        }
        if (txtPayRate.Text == "")
        {
            txtPayRate.BackColor = System.Drawing.Color.Yellow;
            lblError.Text += "Please enter pay rate! ";
        }
        if (txtStartDate.Text == "")
        {
            txtStartDate.BackColor = System.Drawing.Color.Yellow;
            lblError.Text += "Please enter start date! ";
        }
        if (txtEndDate.Text == "")
        {
            txtEndDate.BackColor = System.Drawing.Color.Yellow;
            lblError.Text += "Please enter end date! ";
        }
        dt1 = DateTime.Parse(txtStartDate.Text);
        dt2 = DateTime.Parse(txtEndDate.Text);


        if (DateTime.Compare(dt1, dt2) > 0)
        {
            txtStartDate.BackColor = System.Drawing.Color.Yellow;
            txtEndDate.BackColor = System.Drawing.Color.Yellow;
            lblError.Text += "Start Date must not be greater than End Date. ";
        }

        else
        {
            Session["txtFirstName"] = txtFirstName.Text;
            Session["txtLastName"] = txtLastName.Text;
            Session["txtPayRate"] = txtPayRate.Text;
            Session["txtStartDate"] = txtStartDate.Text;
            Session["txtEndDate"] = txtEndDate.Text;
            Server.Transfer("frmPersonalVerified.aspx");
        }
    }
    catch (Exception)
    {
        lblError.Text = "Please enter valid data!";
    }
  }
}
实际上,我建议您考虑使用验证控件。它们很容易添加到您的表单中。在这种情况下,它们将帮助您完成此操作

添加+=例如
lblError.Text+=“请输入名字”
这将附加到文本框中已有的文本

public partial class frmPersonnel : System.Web.UI.Page
{
  protected void btnSubmit_Click(object sender, EventArgs e)
  {
    try
    {
        DateTime dt1;
        DateTime dt2;

        // Add this 
        lblError.Text = "";

        if (txtFirstName.Text == "")
        {
            txtFirstName.BackColor = System.Drawing.Color.Yellow;
            lblError.Text += "Please enter first name ";
        }
        if (txtLastName.Text == "")
        {
            txtLastName.BackColor = System.Drawing.Color.Yellow;
            lblError.Text += "Please enter last name! ";
        }
        if (txtPayRate.Text == "")
        {
            txtPayRate.BackColor = System.Drawing.Color.Yellow;
            lblError.Text += "Please enter pay rate! ";
        }
        if (txtStartDate.Text == "")
        {
            txtStartDate.BackColor = System.Drawing.Color.Yellow;
            lblError.Text += "Please enter start date! ";
        }
        if (txtEndDate.Text == "")
        {
            txtEndDate.BackColor = System.Drawing.Color.Yellow;
            lblError.Text += "Please enter end date! ";
        }
        dt1 = DateTime.Parse(txtStartDate.Text);
        dt2 = DateTime.Parse(txtEndDate.Text);


        if (DateTime.Compare(dt1, dt2) > 0)
        {
            txtStartDate.BackColor = System.Drawing.Color.Yellow;
            txtEndDate.BackColor = System.Drawing.Color.Yellow;
            lblError.Text += "Start Date must not be greater than End Date. ";
        }

        else
        {
            Session["txtFirstName"] = txtFirstName.Text;
            Session["txtLastName"] = txtLastName.Text;
            Session["txtPayRate"] = txtPayRate.Text;
            Session["txtStartDate"] = txtStartDate.Text;
            Session["txtEndDate"] = txtEndDate.Text;
            Server.Transfer("frmPersonalVerified.aspx");
        }
    }
    catch (Exception)
    {
        lblError.Text = "Please enter valid data!";
    }
  }
}
实际上,我建议您考虑使用验证控件。它们很容易添加到您的表单中。在这种情况下会对您有所帮助。您可以-