【问题标题】:Show year only from datetime using C# Dropdownlist and LINQ使用 C# Dropdownlist 和 LINQ 仅从日期时间显示年份
【发布时间】: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。每次重新绑定下拉列表时。您选择的值已重置。

标签: c# linq


【解决方案1】:

您的问题与 LINQ 无关。您的问题似乎与管理您的页面有关。

确保调用 BindDropDownListYear

if (!IsPostBack)
{
    BindDropDownListYear();
}

【讨论】:

    猜你喜欢
    • 2018-05-11
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 2016-04-14
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多