------- 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)); //执行数据库插入操作 } }
原因:禁用了ViewState(EnableViewState="false")。
如果页面中EnableViewState="true",仍然出现该问题,那么可能是在自定义基类中禁用了ViewState。
比如我为了验证每个页面的登录和权限,写了自定义基类BasePage,在其中定义了EnableViewState="false"。虽然本页面中启用了ViewState,但是实际上还是禁用了。
------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------