Coolite动态加载CheckboxGroup,无法在后台中获取

Coolite在后台动态加载CheckboxGroup,页面显示都正常,但是在后台去获取选中的checkbox时,使用下方法:

 

        /// <summary>
        
/// 获取所选权限
        
/// </summary>
        
/// <returns></returns>
        private string GetPermissionValue()
        {
            
string str = string.Empty;

            cbgPermission.CheckedItems.ForEach(
delegate(Checkbox checkbox)
            {
                
if (string.IsNullOrEmpty(str))
                    str 
= checkbox.ID;
                
else
                    str 
+= "," + checkbox.ID;
            });
            
return str;
}

 

跟踪后发现获取的cbgPermission.CheckedItems一直为0.

 

解决方法:

可是是Coolite页面加载的问题,将动态加载checkbox的方法

 

代码
        /// <summary>
        
/// 绑定系统所有权限
        
/// </summary>
        private void PartBinder()
        {
            IList
<SystemPermission> parts = SystemPermissionBLL.GetALL("ParentCode='0'""Code");
            
if (parts != null && parts.Count > 0)
            {
                
foreach (SystemPermission part in parts)
                {
                    CheckboxColumn col 
= new CheckboxColumn();
                    col.ID 
= "CheckboxColumn" + part.SPId;
                    col.ColumnWidth 
= Convert.ToDouble(0.33);
                    Checkbox checkbox 
= new Checkbox();
                    checkbox.ID 
= part.Code;
                    checkbox.IDMode 
= IDMode.Explicit;
                    checkbox.BoxLabel 
= part.Name;
                    checkbox.Checked 
= true;
                    col.Items.Add(checkbox);
                    IList
<SystemPermission> items = SystemPermissionBLL.GetALL("ParentCode='" + part.Code + "'""Code");
                    
if (items.Count > 0 && items != null)
                    {
                        
foreach (SystemPermission item in items)
                        {
                            Checkbox checkboxChild 
= new Checkbox();
                            checkboxChild.ID 
= item.Code;
                            checkboxChild.BoxLabel 
= item.Name;
                            col.Items.Add(checkboxChild);
                        }
                    }
                    cbgPermission.Items.Add(col);
                }
            }
        }

 

 

放入到重写的页面createChildControl中去,而不是放在pageload中。

 

        protected override void CreateChildControls()
        {
            PartBinder();
            
base.CreateChildControls();
        }

 

完成

posted @ 2010-07-09 14:38  Hayden Han  阅读(643)  评论(0编辑  收藏  举报