Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在使用变量检查复选框的状态。复选框(i)。选中了吗?_C#_Asp.net_Variables_Loops_Checkbox - Fatal编程技术网

C# 正在使用变量检查复选框的状态。复选框(i)。选中了吗?

C# 正在使用变量检查复选框的状态。复选框(i)。选中了吗?,c#,asp.net,variables,loops,checkbox,C#,Asp.net,Variables,Loops,Checkbox,我的web表单中有30个复选框,我想将复选框的状态存储在bool数组中。现在,由于asp.net不接受使用带有变量“i”的复选框的“checked”状态,问题是我不知道如何执行代码 我想要这样的东西: bool[] array = new bool[30]; for (int i = 0; i < 30; i++) { array[i] = CheckBox(i).Checked ; } 而不是: CheckBox15.Checked ASP.NET4和c# 谢

我的web表单中有30个复选框,我想将复选框的状态存储在bool数组中。现在,由于asp.net不接受使用带有变量“i”的复选框的“checked”状态,问题是我不知道如何执行代码

我想要这样的东西:

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

CheckBox15.Checked
ASP.NET4和c# 谢谢大家。

试试这个:

bool[] array = new bool[30];
for (int i = 0; i < 30; i++)
{
   array[i] = ((CheckBox)Page.FindControl("CheckBox" + i.ToString)).Checked;
}
bool[]数组=新bool[30];
对于(int i=0;i<30;i++)
{
数组[i]=((复选框)Page.FindControl(“复选框”+i.ToString))。选中;
}
更新:

我刚刚创建了一个新项目,只是为了测试代码是否正常工作,而且它正常工作。真的吗|

<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;
        }
    }
}
public分部类WebForm1:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
bool[]数组=新bool[10];
对于(inti=1;i请尝试以下方法:

bool[] array = new bool[30];
for (int i = 0; i < 30; i++)
{
   array[i] = ((CheckBox)Page.FindControl("CheckBox" + i.ToString)).Checked;
}
bool[]数组=新bool[30];
对于(int i=0;i<30;i++)
{
数组[i]=((复选框)Page.FindControl(“复选框”+i.ToString))。选中;
}
更新:

我刚刚创建了一个新项目,只是为了测试这些代码是否有效,它确实有效|

<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;
        }
    }
}
public分部类WebForm1:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
bool[]数组=新bool[10];

对于(int i=1;i),它出现了错误:“异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。源错误:第111行:数组[i]=((复选框)Page.FindControl(“复选框”+i.ToString()))。选中;”但谢谢@vhinn terible您有ID为“CheckBox0”的复选框吗?如果没有,它当然会返回NULL,因为它没有看到这样的控件。请将for循环更改为以1而不是0开头!不是因为这个原因。我按照您告诉ans的方式执行了操作,结果是一样的,我也执行了:bool con=((复选框)Page.FindControl(“复选框10”)).Checked;结果是一样的。你会想知道我是不是说我也试过这个:string str=((CheckBox)Page.FindControl(“CheckBox10”)).ID.ToString();结果是一样的。我认为用这个方法根本无法处理特定的控件!谢谢你,它起作用了。但是有一个小小的变化。bool[]数组=new bool[11];仅此而已。再次感谢。出现错误:“异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。源错误:第111行:数组[i]=((复选框)Page.FindControl(“复选框”+i.ToString()))。选中;”但感谢@vhin terible是否有ID为的复选框“CheckBox0”?如果没有,它当然会返回NULL,因为它没有看到这样的控件。将for循环更改为以1而不是0开头!这不是因为这个原因。我按照你告诉ans的方法做了,结果是一样的,我也做了:bool con=((CheckBox)Page.FindControl(“CheckBox10”)).Checked;结果是一样的。你会想知道我是不是说我也试过这个:string str=((CheckBox)Page.FindControl(“CheckBox10”)).ID.ToString();结果是一样的。我认为用这个方法根本无法处理特定的控件!谢谢你,它起作用了。但是有一个小小的变化。bool[]数组=new bool[11]就这些,再次谢谢你。