public static CheckBox[] cb = null;
int z=0;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
cb = new CheckBox[count - k];
//Database code.........
while (dr.Read())//read data from access database
{
cb[z] = new CheckBox();
cb[z].Text = dr["Member_Name"].ToString();
Panel2.Controls.Add(cb[z]);
Panel2.Controls.Add(new LiteralControl("</br>"));
z = z + 1;
}
}
}
protected void Button6_Click(object sender, EventArgs e)
{
for (int x = 0; x < cb.Length; x++)//ERROR IS HERE:Object reference not set to an instance of an object.
{
if (cb[x].Checked == true)
{
//processing check boxes
}
}
}
-1
A
回答
2
你的阵列需要每次页面被调用时被初始化,当页面第一次加载不仅。
0
奥利弗的答案是正确的。所有你需要做的只是删除检查页面的IsPostBack属性的if条件,这就是为什么: 当你在运行时创建一个控件,然后将它附加到asp页面的结构中时,每当页面交付给客户。 所以当你创建一次页面被请求的第一次它被渲染。 如果页面被重新发布回服务器,则应该创建控件的对象,以便渲染,然后从页面的视图状态加载其以前的状态(在您的情况下,对于Checked属性,为true或false)
1
您的复选框数组不是页面视图状态的一部分,因此在回发时不会为您初始化。单击该按钮会导致回发并且cb阵列未初始化。
你可以这样做,而不是:
foreach (Control ctrl in Panel2.Controls)
{
CheckBox cb = ctrl as CheckBox;
if (cb != null && cb.Checked)
{
//processing check boxes
}
}
相关问题
- 1. 复选框值真/假
- 2. S:复选框 - 选择得到价值
- 3. 复选框NG-假值作为空
- 4. 得到复选框值动态使用动态复选框名
- 5. 只得到检查复选框值
- 6. 复选框值没有得到显示
- 7. 获得价值复选框
- 8. 获得总[复选框]值
- 9. Excel“真假”复选框
- 10. 记得我复选框
- 11. 得到复选框在drupal7
- 12. jQuery的 - serializearray()没有得到选中的复选框的值
- 13. Jquery得到选定的复选框
- 14. 当我的复选框未被选中时如何设置假值为ng-model
- 15. 得到多值的字段值复选框中的JavaScript
- 16. 我无法在PHP中获得我的数组复选框值
- 17. 如何从GSP得到选中的复选框值Java脚本
- 18. 无法获得复选框的值
- 19. 获得()不能够得到复选框
- 20. 为什么我的JavaScript功能找到我的复选框是假
- 21. 我没有得到我的对齐输入复选框形式
- 22. SmartGWT的:复选框树 - 正确的方法来获得选择复选框值
- 23. Rails 4复选框集合:无法获得include_hidden:假工作
- 24. 如何获得淘汰赛复选框在真或假
- 25. 复选框选中得到即使值为空,在PHP
- 26. 复选框值真或假替代cshtml中的字符串
- 27. 复选框的位置得到改变
- 28. 的onclick复选框追加复选框值到URL
- 29. 我如何获得一个复选框的值
- 30. 要获得多个复选框值
尝试让你的代码在代码框中,请。这不是很可读。 – Younes 2010-01-19 09:01:14
因为你有cb [z]复选框,所以不知道你所指的复选框。 – Younes 2010-01-19 09:02:28
发布问题,而不仅仅是一些代码! – 2010-01-19 09:14:09