我做一个简单的网站,当我按下按钮时,我应该看到标签中的重量..我看到但是如果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";
}
}
答案 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;
}
}