我有这段代码:
for (int i = 0; i < ListView2.Items.Count; i++)
{
if (((CheckBox)ListView2.Items[i].FindControl("UcastCheckBox")).Checked || ((TextBox)ListView2.Items[i].FindControl("BrankyTextBox")).ToString > 0)
{
}
}
但现在取消选中所有复选框......:/
你能想出解决方法吗?
答案 0 :(得分:2)
您必须将字符串转换为int值。
for (int i = 0; i < ListView2.Items.Count; i++)
{
int a;
Int32.TryParse(((TextBox)ListView2.Items[i].FindControl("BrankyTextBox")).ToString(), out a);
if (((CheckBox)ListView2.Items[i].FindControl("UcastCheckBox")).Checked ||
a > 0)
{
}
}
答案 1 :(得分:0)
您将string
与int
进行比较,必须在比较前将字符串值转换为int
试试这个
int a=int.Parse((((TextBox)ListView2.Items[i].FindControl("BrankyTextBox")).ToString));
if (((CheckBox)ListView2.Items[i].FindControl("UcastCheckBox")).Checked || a > 0 )
答案 2 :(得分:0)
ToString
是一种方法,您缺少调用方法所需的括号,而不是仅仅引用它。 (这是您发布的错误消息的含义。)我提取了一些变量以使代码更具可读性。
此外,正如其他人所指出的那样,您必须将字符串转换为整数,以便将其与0
进行比较。您可以使用int.Parse
方法。
for (int i = 0; i < ListView2.Items.Count; i++)
{
var ucastCheckBox = (CheckBox)ListView2.Items[i].FindControl("UcastCheckBox");
var brankyTextBox = (TextBox)ListView2.Items[i].FindControl("BrankyTextBox");
// .ToString(), not .ToString
// and int.Parse to get an int value from the string
int brankyValue = int.Parse(brankyTextBox.ToString());
if (ucastCheckBox.Checked || brankyValue > 0)
{
}
}
理想情况下,您应该在某个时候使用int.TryParse
来确认文本框中的值是一个整数,但这超出了问题的范围。