现在的位置: 首页 > 综合 > 正文

checkboxList后台绑定取Value 取不到

2014年03月11日 ⁄ 综合 ⁄ 共 2374字 ⁄ 字号 评论关闭

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

/// <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();
        }

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

抱歉!评论已关闭.