读书人

动态绑定checkbox在panel控件中却遍

发布时间: 2012-04-24 14:15:38 作者: rapoo

动态绑定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上的位置

读书人网 >asp.net

热点推荐