运营商'>'不能应用于'方法组'和'int'类型的操作数

时间:2013-06-19 10:12:15

标签: c# listview

我有这段代码:

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)
           {

           }
        }

但现在取消选中所有复选框......:/

你能想出解决方法吗?

3 个答案:

答案 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)

您将stringint进行比较,必须在比较前将字符串值转换为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来确认文本框中的值是一个整数,但这超出了问题的范围。