C# 正在使用变量检查复选框的状态。复选框(i)。选中了吗?
我的web表单中有30个复选框,我想将复选框的状态存储在bool数组中。现在,由于asp.net不接受使用带有变量“i”的复选框的“checked”状态,问题是我不知道如何执行代码 我想要这样的东西: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# 谢
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]就这些,再次谢谢你。