黑马程序员 ASP.NET中 CheckboxList.Items.Count=0的解决办法

  ------- Windows Phone 7手机开发.Net培训、期待与您交流! -------

   aspx代码结构如下:

<asp:ObjectDataSource ID="odsRightList" runat="server" 
                            SelectMethod="GetAllRights" TypeName="TMCR.BLL.RightBLL">
         </asp:ObjectDataSource>
<asp:CheckBoxList ID="cbRightList" runat="server" DataSourceID="odsRightList" 
                            DataTextField="Name" DataValueField="Id">
         </asp:CheckBoxList>

CheckBoxLis控件cbRightList绑定了ObjectDataSource数据源odsRightList,并设定属性DataTextField和DataValueField。

出现的问题: 

数据加载没有问题,但是选中某些项后,得不到项的Value,调试发现,cbRightList.Items.Count=0,也就是无法获取选中的项。

         C#关键代码如下:    

foreach (ListItem item in cbRightList.Items)
     {                
        if (item.Selected == true)
        {
                bll.Add(roleId, Convert.ToInt32(item.Value));	//执行数据库插入操作
        }
     }

         原因:禁用了ViewStateEnableViewState="false")。

         如果页面中EnableViewState="true"仍然出现该问题,那么可能是在自定义基类中禁用了ViewState。

        比如我为了验证每个页面的登录和权限,写了自定义基类BasePage,在其中定义了EnableViewState="false"。虽然本页面中启用了ViewState,但是实际上还是禁用了。


------- Windows Phone 7手机开发.Net培训、期待与您交流! -------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值