-1

我有这个代码:

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

           }
        }

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

你能想到如何解决它吗?

4

3 回答 3

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

    }
}
于 2013-06-19T10:15:22.803 回答
1

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在某个时候使用来确认文本框中的值是一个整数,但这超出了问题的范围。

于 2013-06-19T10:23:56.177 回答
0

您将 astring与a 进行比较int,您必须在比较之前将字符串值转换为 int

尝试这个

int a=int.Parse((((TextBox)ListView2.Items[i].FindControl("BrankyTextBox")).ToString));
 if (((CheckBox)ListView2.Items[i].FindControl("UcastCheckBox")).Checked || a > 0 )
于 2013-06-19T10:18:14.823 回答