-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はメソッドであり、単にメソッドを参照するのではなく、メソッドを呼び出すために必要な括弧がありません。(これは、投稿されたエラー メッセージの意味です。) コードを読みやすくするために、いくつかの変数を抽出しました。

また、他の人が指摘したように、文字列を と比較するには、文字列を整数に変換する必要があります0int.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と anintを比較します。比較する前に文字列値を 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 に答える