ASP.Net复选框列表项,返回的值是否与文本相同?
我正在设置Asp.Net复选框列表,如下所示:ASP.Net复选框列表项,返回的值是否与文本相同?,asp.net,checkboxlist,Asp.net,Checkboxlist,我正在设置Asp.Net复选框列表,如下所示: var objs = db.CoreObjectives.AsNoTracking().Where(n => n.Core_Target_ID == id && n.Current_Record == true); foreach (var o in objs) { ListItem item = new ListItem(); i
var objs = db.CoreObjectives.AsNoTracking().Where(n => n.Core_Target_ID == id && n.Current_Record == true);
foreach (var o in objs)
{
ListItem item = new ListItem();
item.Value = o.Core_Objectives_ID.ToString();
item.Text = o.Objective;
item.Selected = false;
results.Add(item);
}
lstObjectivesCore.DataSource = results;
lstObjectivesCore.DataBind();
我已经调试了这个项目。值行和o.Core\u Objectives\u ID肯定是一个整数。但当我稍后这样做时:
foreach (ListItem item in lstObjectivesCore.Items)
{
if (item.Selected)
{
int id = Convert.ToInt32(item.Value);
// Other code omitted
}
}
item.Value与item.Text相同,是一个字符串值,即“这是一个目标”?
我做错什么了吗?为什么要使用数据绑定?我会使用Items.AddRange 这对我来说很有效(有额外的测试代码)
列表结果=新列表();
对于(int i=0;i<10;i++)
{
添加(新列表项(“t”+i.ToString(),i.ToString());
}
CheckBoxList1.Items.AddRange(result.ToArray());
foreach(CheckBoxList1.Items中的ListItem项目)
{
如果(选定项)
{
int id=Convert.ToInt32(item.Value);
//省略其他代码
}
}
老实说,我不知道AddRange。我想一次添加一个项目也会奏效,而数据绑定就是问题所在。
List<ListItem> result = new List<ListItem>();
for (int i = 0; i < 10; i++)
{
result.Add(new ListItem("t" + i.ToString(), i.ToString()));
}
CheckBoxList1.Items.AddRange(result.ToArray());
foreach (ListItem item in CheckBoxList1.Items)
{
if (item.Selected)
{
int id = Convert.ToInt32(item.Value);
// Other code omitted
}
}