当前位置: 代码迷 >> ASP.NET >> 动态绑定checkbox在panel控件中,却遍历不出来?解决方案
  详细解决方案

动态绑定checkbox在panel控件中,却遍历不出来?解决方案

热度:2267   发布时间:2013-02-25 00:00:00.0
动态绑定checkbox在panel控件中,却遍历不出来?
动态添加的几个CheckBox控件也在页面上显示出来了,调试时,panel控件中Controls的数量还是3,可就是点击保存时,在事件里遍历却发现count变为1了?
C# code
    protected void btn_Search_Click(object sender, EventArgs e)//查询按钮事件    {        List<Staff> list = new StaffManager().GetStaffDCN(staff);//查询用户        foreach (Staff sta in list)        {             CheckBox cb = new CheckBox();//创建CheckBox控件            cb.ID = sta.StfCode;//将员工编号设为ID            cb.Text = sta.StfName;            this.pnl_ToUser.Controls.Add(cb);            //将控件添加入Panel中,在这里断点调试Count数为3 !        }     }    protected void btn_Save_Click(object sender, EventArgs e)//保存按钮事件    {        List<MessageToUser> list = new List<MessageToUser>();        foreach (Control con in this.pnl_ToUser.Controls)       //断点调试时这里Count却为1?            {                if (con is CheckBox)                {  CheckBox cb = con as CheckBox;                    if (cb.Checked)                    {                        MessageToUser messageToUser = new MessageToUser();                        messageToUser.ToUserId = new Staff { StfCode=cb.ID };                        list.Add(messageToUser);                    }                 }              }     }


------解决方案--------------------------------------------------------
又是这种问题。2个解决方法:一种不要动态添加,而是事先添加好隐藏,用时再逐个显示;另一种用ViewState或Session保存被添加的容器,在Page_Load事件中重新加载。
------解决方案--------------------------------------------------------
探讨

你指定下一每个CheckBox的panel上的位置
  相关解决方案