刚刚开始使用控件就遇到了问题。我要做一个星期的选项控件。
/// <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();
}
不知道是哪里用错了参数还是方法有错误.虽然问题解决了,但是还在思考。