博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Coolite动态加载CheckboxGroup,无法在后台中获取
阅读量:4640 次
发布时间:2019-06-09

本文共 1586 字,大约阅读时间需要 5 分钟。

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的方法

 

ExpandedBlockStart.gif
代码
        
///
 
<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();
        }

 

完成

转载于:https://www.cnblogs.com/hayden/archive/2010/07/09/1774377.html

你可能感兴趣的文章
86. Partition List
查看>>
[LintCode] 378 Convert Binary Search Tree to Doubly Linked List 解题报告
查看>>
CentOS6.5手动升级gcc4.8.2
查看>>
3.9 java基础总结集合①LIst②Set③Map④泛型⑤Collections
查看>>
Unix和Linux下C语言学习指南
查看>>
diff
查看>>
linux源码Makefile详解
查看>>
css3圈圈进度条
查看>>
【linux配置】在VMware中为Redhat HAT配置本地yum源
查看>>
Python 函数动态参数
查看>>
javascript之非构造函数的继承
查看>>
python爬虫--爬取某网站电影下载地址
查看>>
C#实现 单点登录(SSO)
查看>>
高精度计算(2015.8.1)
查看>>
cocos2d-x tile map瓦片地图的黑线及地图抖动解决方案
查看>>
软工网络15团队作业2——团队计划
查看>>
Android屏幕适配
查看>>
ps简单操作文档
查看>>
CSS之float样式
查看>>
08test
查看>>