关于C#if else语句的简单问题

时间:2010-05-07 22:41:59

标签: c#

我做一个简单的网站,当我按下按钮时,我应该看到标签中的重量..我看到但是如果text.maxlenght> 6,我应该在同一标签上看到ERROR消息,但重复看标签中的重量。我该如何解决这个问题?

protected void Button1_Click(object sender, EventArgs e)
{
    double sayi1, sayi2, sayi3, hesap, sonuc;

    sayi1 = Convert.ToDouble(Tb1.Text);
    sayi2 = Convert.ToDouble(Tb2.Text);
    sayi3 = Convert.ToDouble(Tb3.Text);

    if (Tb1.MaxLength > 6 || Tb2.MaxLength > 6)
    {
        lbl1.Text = "ERROR.";

    }
    else
    {
        hesap = (((sayi1 - ((sayi1 - sayi2) / 2)) * ((sayi1 - sayi2) / 2)) / 40);
        sonuc = (hesap * sayi3) / 100;
        lbl1.Text = sonuc.ToString() + "kg";
    }


}

4 个答案:

答案 0 :(得分:4)

我想你想要

Tb1.Text.Length > 6

而不是

Tb1.MaxLength > 6

答案 1 :(得分:1)

我不确定你在问什么,但是你想要在文本框中获取内容的长度吗?

在这种情况下,你会说:

Tb1.Text.Length > 6

Tb1.MaxLength > 6

您使用的MaxLength是文本框的属性,但不是基于输入字段的内容。

答案 2 :(得分:1)

问题在于对Tb1.MaxLength的引用。此属性是一个验证属性,可防止用户输入长于该值的文本。

如果在文本框中设置MaxLength属性,则用户将永远无法输入超过6个字符。

如果您想要错误,请使用

检查文本的长度

Tb1.Text.Length> 6

你也可以使用double.tryparse函数,万一有人没有在文本框中输入数值(但是你可以用验证器实现同样的目的)。

答案 3 :(得分:0)

您必须将该标签存储在会话或视图状态变量中,然后再将其设置为if语句:

protected void Button1_Click(object sender, EventArgs e) { double sayi1, sayi2, sayi3, hesap, sonuc;

    sayi1 = Convert.ToDouble(Tb1.Text);
    sayi2 = Convert.ToDouble(Tb2.Text);
    sayi3 = Convert.ToDouble(Tb3.Text);

    if (Tb1.Text.Length > 6 || Tb2.Text.Length > 6)
    {
        lbl1.Text = "ERROR.";
        if (session["currentTb1"] != null && session["currentTb2"] != null){
             Tb1.Text = session["currentTb1"].toString();
             Tb2.Text = session["currentTb2"].toString();
        }
    }
    else
    {
        hesap = (((sayi1 - ((sayi1 - sayi2) / 2)) * ((sayi1 - sayi2) / 2)) / 40);
        sonuc = (hesap * sayi3) / 100;
        lbl1.Text = sonuc.ToString() + "kg";
        session["currentTb1"] = Tb1.Text;
        session["currentTb2"] = Tb2.Text;
    }


}