0

而是使用基于查找表的查询填充下拉列表,有没有办法将查找中的所有记录作为数据源并简单地“转到”在查询中找到的记录?

谢谢

4

2 回答 2

0

我在这里拿了一个赃物,但听起来你有一个来自数据库的对象集合(为了争论,我们说员工),你想要一个下拉列表,该下拉列表将填充该集合中的一个字段。您可以使用 Linq 完成此操作。

var emps = from e in db.Employees
           select e;

var ddlSource = emps.Select(x =>
                            new ListItem {
                                              Text = x.LastName + ", " + x.FirstName,
                                              Value =  x.ID
                                         };

然后,您可以将 DropDownList 绑定到ddlSourceIQueryable。

于 2012-12-18T16:35:04.753 回答
0

我猜是您已经在数据库中选择了项目,并希望在填充下拉列表时选择它。考虑下面的例子

查看模型

public class TestVM 
{
        public int CategoryId { get; set; }
        public IEnumerable<SelectListItem> Categories { get; set; }
}

在控制器中

public ActionResult Index()
{
            TestVM objTestVM = new TestVM();            
            objTestVM.Categories = new List<SelectListItem>() { 
                new SelectListItem() { Value="1", Text="Food"},
                new SelectListItem() { Value="2", Text="Movie"}
            };
            objTestVM.CategoryId = 2;//get this value from DB
            return View(objTestVM);
}

在视图中

@model MvcApplication4.Models.TestVM
@using(Html.BeginForm())
{
@Html.DropDownListFor(m => m.CategoryId, Model.Categories, "--select--")
<input type="submit" value="submit" />
}

现在它会自动在下拉列表中选择类别,在这种情况下为 2。如果选择了其他类别并提交页面,则新的 categoryid 将被发送回控制器发布操作。

于 2012-12-18T17:36:12.637 回答