【发布时间】:2016-08-04 07:09:25
【问题描述】:
我想使用 linq 仅在下拉列表中显示年份,并在单击搜索按钮时获取所选值,但是,所选值似乎无法正常工作,因为它只返回 2015 年,因为它是下拉列表中的第一项
这是我的代码。
public void BindDropDownListYear()
{
using (FoodOrderingDBContext db = new FoodOrderingDBContext())
{
var query = from o in db.OrderTables
group o by (o.OrderedDateTime).Year into og
select new { OrderedDateTime = og.Key };
DropDownListYear.DataSource = query.ToList();
DropDownListYear.DataTextField = "OrderedDateTime";
DropDownListYear.DataValueField = "OrderedDateTime";
DropDownListYear.DataBind();
}
}
【问题讨论】:
-
“只返回 2015 年”有什么问题?数据是什么?
-
你是在页面加载事件中调用这个方法吗?
-
@JeroenvanLangen 当我点击我的提交按钮时,我有代码来检索下拉列表的选定值但是,我只能获得下拉列表的第一项,即 2015 年。因为显然,我只有2015年和2016年的2项
-
@AnkitkumarBhatt 是的,我在页面加载事件中调用了这个方法。
-
和ankitkumar问的一样。您是在绑定此下拉列表之前还是之后读取选定的值。您应该只在页面不是“回发”时填写下拉列表,数据将保留在视图状态中。谷歌'ispostback' asp.net。每次重新绑定下拉列表时。您选择的值已重置。