2011-11-12 17 views
1

Webフォームに30個のチェックボックスがあり、チェックボックスのステータスをboolの配列に格納したいとします。 asp.netは "i"のような変数を持つチェックボックスの "checked"ステータスの使用を受け入れないので、コードを実行する方法がわかりません!チェックボックスの状態を変数でチェックします。チェックボックス(i)。チェック?

私はこのような何かしたい:私はまさに私がチェックボックスのIDを使用することができる方法を知りたい

Compilation Error 
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS0118: 'System.Web.UI.WebControls.CheckBox' is a 'type' but is used like a 'variable' 

Source Error: 

Line 109:  for (int i = 0; i < 30; i++) 
Line 110:  { 
Line 111:   array[i] = CheckBox(i).Checked; 
Line 112:  } 
Line 113: 

bool[] array = new bool[30]; 
for (int i = 0; i < 30; i++) 
    { 
     array[i] = CheckBox(i).Checked ; 
    } 

あなたは上記のコードを実行するときに、このエラーが発生しますが

i = 15; 
CheckBox(i).Checked 

の代わり:

01のような変数、
CheckBox15.Checked 

ASP.net 4およびc# ありがとうございます。私はコードが作業している場合は、単にテストするために、新しいプロジェクトを作成し、それが働いた

bool[] array = new bool[30]; 
for (int i = 0; i < 30; i++) 
{ 
    array[i] = ((CheckBox)Page.FindControl("CheckBox" + i.ToString)).Checked; 
} 

UPDATE:

答えて

1

はこれを試してみてください。本当に。 :|

<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:CheckBox ID="CheckBox1" runat="server" /> 
     <asp:CheckBox ID="CheckBox2" runat="server" /> 
     <asp:CheckBox ID="CheckBox3" runat="server" /> 
     <asp:CheckBox ID="CheckBox4" runat="server" /> 
     <asp:CheckBox ID="CheckBox5" runat="server" /> 
     <asp:CheckBox ID="CheckBox6" runat="server" /> 
     <asp:CheckBox ID="CheckBox7" runat="server" /> 
     <asp:CheckBox ID="CheckBox8" runat="server" /> 
     <asp:CheckBox ID="CheckBox9" runat="server" /> 
     <asp:CheckBox ID="CheckBox10" runat="server" /> 
    </div> 
    </form> 
</body> 

コードビハインド:

public partial class WebForm1 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     bool[] array = new bool[10]; 
     for (int i = 1; i <= 10; i++) 
     { 
      array[i] = ((CheckBox)Page.FindControl("CheckBox" + i.ToString())).Checked; 
     } 
    } 
} 
+0

それはエラーで来た:「例外の詳細:System.NullReferenceException:オブジェクトのインスタンスに設定されていないオブジェクト参照ソースエラー:ライン111:配列[I ] =((チェックボックス)Page.FindControl( "CheckBox" + i.ToString()))。 しかし、おかげで@vhinnひどい –

+0

IDが "CheckBox0"のチェックボックスがありますか?もしそうでなければ、それはそういうコントロールを見なかったので、もちろんNULLを返します。あなたのforループを1ではなく0で始めるように変更してください! –

+0

それはそうではありません。私はあなたが言ったことは、結果が同じであることをやった、私もした:bool con =((CheckBox)Page.FindControl( "CheckBox10"))。それは同じだった。あなたは私もこれを試したと言うかどうか疑問に思うでしょう:string str =((CheckBox)Page.FindControl( "CheckBox10"))。ID.ToString(); と同じ結果になりました。私はそれがすべてこのメソッドで特定のコントロールを細かくすることはできないと思う! –

関連する問題