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;
}
????????///?獲取所選權限
????????///?</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);
????????????????}
????????????}
????????}
????????///?綁定系統所有權限
????????///?</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();
????????}
????????{
????????????PartBinder();
????????????base.CreateChildControls();
????????}
?
完成