checkboxList后台绑定取Value 取不到

刚刚开始使用控件就遇到了问题。我要做一个星期的选项控件。

/// <summary>
        /// 星期列表
        /// </summary>
        /// <returns></returns>
        private ListItemCollection WeekList()
        {
            ListItemCollection listWeek = new ListItemCollection();
           
            listWeek.Add( new ListItem( "星期一", "1" ) );
            listWeek.Add( new ListItem( "星期二", "2" ) );
            listWeek.Add( new ListItem( "星期三", "3" ) );
            listWeek.Add( new ListItem( "星期四", "4" ) );
            listWeek.Add( new ListItem( "星期五", "5" ) );
            listWeek.Add( new ListItem( "星期六", "6" ) );
            listWeek.Add( new ListItem( "星期日", "7" ) );

            return listWeek;
        }

       /// <summary>
        /// 日期邦定
        /// </summary>
        private void BinderWeek()
        {
            this.ckbWeekList.DataSource = WeekList()
            this.ckbWeekList.DataBind();
        }

但是在取得 checkboxlist 被选中的值时遇到了问题--〉

/// <summary>
        /// 获得选定星期信息
        /// </summary>
        /// <returns></returns>
        private string SelectedValue()
        {
            string SelectedValue = "";
            foreach ( ListItem item in this.ckbWeekList.Items )
            {
                if ( item.Selected )
                {
                    SelectedValue += item.Value + ",";
                }
            }
            return SelectedValue;
        }

返回的信息是 星期一,星期二。。。。 而不是 1,2,3。不知道是为什么,后来用datatable处理数据才通过

但是用:foreach (ListItem item in listWeek)
            {
                Response.Write( item.Text + "--"+ item.Value );
            }

又有Value的值,??????

最后用如下方法解决。

/// <summary>
        /// 星期列表
        /// </summary>
        /// <returns></returns>
        private DataTable WeekDataTable()
        {
            DataTable dtWeek = new DataTable();

            dtWeek.Columns.Add("Text", typeof( String ) );
            dtWeek.Columns.Add("Value", typeof( Int16 ) );

            dtWeek.Rows.Add( new object[2]{ "星期一", 1 } );
            dtWeek.Rows.Add( new object[2]{ "星期二", 2 } );
            dtWeek.Rows.Add( new object[2]{ "星期三", 3 } );
            dtWeek.Rows.Add( new object[2]{ "星期四", 4 } );
            dtWeek.Rows.Add( new object[2]{ "星期五", 5 } );
            dtWeek.Rows.Add( new object[2]{ "星期六", 6 } );
            dtWeek.Rows.Add( new object[2]{ "星期日", 7 } );

            return dtWeek;
        }

邦定如下:

 /// <summary>
        /// 日期邦定
        /// </summary>
        private void BinderWeek()
        {
            this.ckbWeekList.DataSource = WeekDataTable();
            this.ckbWeekList.DataValueField = "Value";
            this.ckbWeekList.DataTextField  = "Text";
            this.ckbWeekList.DataBind();
        }

不知道是哪里用错了参数还是方法有错误.虽然问题解决了,但是还在思考。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值