【问题标题】:Unable to bind LINQ results to drop down无法将 LINQ 结果绑定到下拉列表
【发布时间】:2012-11-28 04:17:36
【问题描述】:

我是新来的链接,并正在关注 How to bind LINQ data to dropdownlist 尝试使用 LINQ 将我的数据绑定到下拉列表,但我收到错误“数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)不是“我遵循了代码示例,所以我不确定我做错了什么或如何解决它。谁能告诉我这是使用 LINQ 的第二天。

            using (var db = new FullContext())
            {
                ddlItemType.DataSource = from t in db.ItemTypes
                                         select new { t.ID, t.Name };
                ddlItemType.DataTextField = "Name";
                ddlItemType.DataValueField = "ID";
                ddlItemType.DataBind();
            }

【问题讨论】:

    标签: c# linq entity-framework-5 asp.net-4.5


    【解决方案1】:

    你是binding dropdown with query instead of data object。您返回查询的语句但不是实际数据。您需要将其与实例列表的数据对象绑定。

    更改查询

    ddlItemType.DataSource = from t in db.ItemTypes
         select new { t.ID, t.Name };
    

    到数据源

    ddlItemType.DataSource =  (from t in db.ItemTypes
         select new { t.ID, t.Name }).ToList();
    

    【讨论】:

      【解决方案2】:

      你可以试试:

      ddlItemType.DataSource = (from t in db.ItemTypes
                                select new { t.ID, t.Name }).ToList()
      

      【讨论】:

        【解决方案3】:
        public static void ListItem(DropDownList container) {
                DbDataContext db = new DbDataContext();
                var rs = from t in db.ItemTypes
                                 select new { t.ID, t.Name };
        
                foreach (var r in rs)
                    container.Items.Add(new ListItem(t.ID + " - " + t.Name, t.ID));
        }
        

        打电话:

        ListItem(YourDropdownListID);

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-04-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多