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();
        }

 

完成

你可能感兴趣的:(checkbox)