ASP.Net Checkboxlist 项目,值返回与文本相同吗?

标签 asp.net checkboxlist

我正在设置一个 Asp.Net CheckBoxList,如下所示:

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

我已经在 item.Value 行上进行了调试,并且 o.Core_Objectives_ID 绝对是一个整数。但是当我稍后这样做时:

        foreach (ListItem item in lstObjectivesCore.Items)
        {
            if (item.Selected)
            {
                int id = Convert.ToInt32(item.Value);
                // Other code omitted
            }
        }

item.Value 与 item.Text 相同,是一个字符串值,即“这是一个目标”? 我做错了什么吗?

最佳答案

为什么使用 DataBind?我会使用 Items.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
        }
    }

关于ASP.Net Checkboxlist 项目,值返回与文本相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19448233/

相关文章:

asp.net - 对象数据的多线程加载方法

android - 如何设置要在对话框中预先检查的按钮?

jquery .each 迭代

asp.net - 在 GridView 自动数据绑定(bind)中捕获错误

c# - Image.Save 参数无效

c# - 取消选中复选框列表中的所有项目在 C# 中选择

c# - 选择/取消选择所有复选框

C# 从数据库中填充 CheckBoxList(奇怪的列/标题文本名称)

jquery - UpdatePanel 动画仅在超时后运行

asp.net - 使用 Global.asax 的优点和缺点是什么?